For the ruby projects, we are using bundler to ship the dependency and then have a job per target to execute a single command (ex: bundle exec cucumber).
For other languages, we defined entry points invoked by Jenkins jobs, that let the developers define whatever command they want to run. Ex:
| Language | Command |
|---|---|
| PHP | composer test |
| JavaScript | npm test |
| Python | tox |
For python we are using tox and it is being made generic with T103251
They key points are:
- let devs define the commands that are run by Jenkins
- reduce the number of jobs triggered per change, and hence the number of VM consume by Continuous-Integration-Scaling
This task is about defining an entry point for ruby projects. I think rake would make much sense. We do not have RVM, so to run the job against different version of ruby we will need to generate different jobs tied to the different distribution we have that each comes with different rubies (i.e. Precise is 1.9.3, Trusty has 2.0 and Jessie 2.1 IIRC).
Doc:
https://www.mediawiki.org/wiki/Continuous_integration/Entry_points
@dduvall and @zeljkofilipin Can we reach an agreement as to what is going to be the entry point for ruby? (hint: rake).