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