Thinktank: CI's, compiler lists, and project automation
Nick Sabalausky (Abscissa)
SeeWebsiteToContactMe at semitwist.com
Sat Mar 3 06:39:42 UTC 2018
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.)
More information about the Digitalmars-d
mailing list