On Saturday, 3 March 2018 at 06:39:42 UTC, Nick Sabalausky
(Abscissa) wrote:
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.)
I receive emails from them, after it broke, each time it builds
and that the build is not repaired and finally a last one when
the build is repaired.
I've just checked and there is no settings to activate this.
- 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.)
I agree. "Nightly" is useful but "beta" not, or rather _not
always_. "beta" is useful when there's a new beta and until it
get released (usually 2-3 weeks), after what this wastes
computing resources.