Thinktank: CI's, compiler lists, and project automation
Basile B.
b2.temp at gmx.com
Sat Mar 3 13:55:32 UTC 2018
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.
More information about the Digitalmars-d
mailing list