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

Reply via email to