On 03/02/2018 02:24 AM, Jacob Carlborg wrote:
Travis CI allows you to specify a D compiler in the following ways:
* <compiler> - the latest version of the specified compiler
* <compiler>-beta - the latest beta
* <compiler>-nightly - the nightly build
* <compiler>-<version> - a specific version of the compiler
Where <compiler> is "dmd", "ldc" or "gdc".
Combine the above with a scheduled build that builds once every day
you're pretty well covered. For an example, see the Travis CI
configuration for DStep [1]. I'm building the latest version of DMD and
LDC on Linux and macOS, but the betas and nightly are only built on
Linux, due the the limited resources of macOS builds on Travis CI.
[1] https://github.com/jacob-carlborg/dstep/blob/master/.travis.yml
Certainly a possible approach, but has downsides:
- Maybe there's a simple setting I've overlooked, but when a build job
fails on travis, the author does not get proactively notified. The
author only finds out next time they go into travis. (I've been
surprised many times to discover failed builds that had occured several
days ago, or more.)
- A project author will still need to: 1. Actively notice new compiler
releases and 2. Manually update the .travis.yml files for each of their
projects. Certainly there's room for more automation here.
- Except when "nightly" is desired, this leads to many unnecessary
redundant builds/tests, especially across all the various D projects.
(Though I don't know how much that would matter on travis. Maybe it'd be
a drop in their bucket.)