Over time our .travis.yml file has gotten increasingly complicated, to the point that it's actually quite hard to understand what's going on in there. Part of the problem is that it's not a real script, so, we have to fit all commands on a single line (which is crazy readability) and we can't break things out into functions. If we moved the core functionality into a script, it'd be much easier to understand and maintain.
There would also be a number of other advantages:
- It will be easier to test. If we can break it up into parts that are Travis-CI dependent and can run on any Linux box, then we can test changes to our CI script without having to actually run on Travis-CI.
- It'll make it easier for child distribtions to steal it. It turns out that child distributions want to use our CI stuff. If we can make our script generic enough, they could just copy this script as-is, rather than forking our .travis.yml. This will make updates easier too.
I'm not sure if we should try to address ALL of that with this issue, but definitely just moving the functionality so it can evolve later would be a good first step.
Comments
Comment #1
dsnopekComment #2
dsnopekHere is a first pass at the patch! It works, but it's really only the beginning. Still might be worth committing and evolving rather than trying to get right now.
Comment #4
dsnopekBlergh! Ignore that patch, it contains a bunch of unrelated changes I'm working on in other branches. However, I have committed the pertinent changes! See the commitdiff:
http://cgit.drupalcode.org/panopoly/commit/?id=eb681bc2b590db895794edfff...
This script could definitely use further refactoring, but that will be for another day!
Comment #5
dsnopekAh, and here is the Travis build:
https://travis-ci.org/panopoly/panopoly/builds/28354996