Hi, I've implemented Travis CI builds for rumprun-packages. After fixing trivial issues with some packages, all[1] packages except openmp are building. See the latest results here:
https://travis-ci.org/rumpkernel/rumprun-packages Due to the amount of time it takes for a build to complete (3+ hours), these builds are not triggered on commits to rumprun-packages. Instead, the builds are triggered via an API call[2] to Travis and are currently set to run twice a day, at 0600 and 1800 CET. Pull requests are not currently built since there is no straightforward way to build only the subset of packages which are touched by the pull request. Success and failure notifications are sent to the [email protected] mailing list, I recommend that package maintainers sign up there to keep track of the build status. Notes for maintainers / new package authors: (I'll add these to README shortly) 1) When adding, removing or renaming a package ensure that you make the corresponding update in .travis.yml. 2) If your package requires any additional host dependencies to build which are not installed in the Travis "trusty" CI environment, you will also need to modify .travis-install.sh and add the appropriate "sudo apt-get install". Technical background: After discussion on the list and IRC I decided to go with a solution based purely on Travis as this has the least moving pieces and external dependencies[3]. For each build, packages are built as individual build jobs using the build matrix feature of Travis. The list of packages to build is specified in the env: section of .travis.yml. The rumprun toolchain used to build the packages is built afresh from source (then-current git master) *for each package*. This is not ideal -- I'll get in touch with Travis and see if we can figure out a way to both optimize this (speeding up build times) and ensure that the same, known-good, toolchain is used for the entire build as a whole. [1] I don't attempt to build the Rust toolchain, since that takes hours and Travis has a 50 minute time limit on individual build jobs. I also don't build roundcube at the moment since that doesn't really add any value and I've yet to decide if rumprun-packages is the right place for it at all. [2] Based on this document: https://docs.travis-ci.com/user/triggering-builds [3] There is one trivial external dependency, which is the shell script running as a cron job on my server to trigger the builds using the API calls documented above. I can send a copy of this to the list if anyone wants it. Enjoy, Martin
