[GHC DevOps Group] Continuous integration effort status

Ben Gamari ben at well-typed.com
Mon Mar 5 17:15:44 UTC 2018


Hi everyone,

Simon suggested that I write with a bit of a status update summarizing
where we stand on the CI reboot effort.

As of today we have the following:

 * Per-push CircleCI builds [1] in a variety of ways:
 
     * "Vanilla" amd64/Linux
     * amd64/Linux with -fllvm
     * Hadrian amd64/Linux
     * "Vanilla" amd64/Darwin

   These currently fail due to #14705, although this should be resolved
   shortly.

 * A 64-bit Windows build of BuildFlavour=quick on Appveyor [2]. This
   currently fails due to a maximum artifact size restriction. Moreover,
   a full GHC build is not practical on Appveyor's infrastructure due to
   build time limits.

To help achieve full Appveyor support, Google X has kindly agreed to
sponsor computational resources which we can use to host our own
instance of Appveyor's self-hosted server. In addition to the cost of
the computational resources which Google has covered, this solution will
require a $50/month Premium Appveyor subscription. As far as I know we
still don't have a source for this, although it is possible that
haskell.org could foot this bill.

There are a variety of items currently in flight,

 * Alp will be looking at fixing the --slow validate failures (#14890)

 * David is looking at incorporating last summer's performance testsuite
   rework, #12758, into our CircleCI infrastructure.

 * For the next day or two I am rather tied up with other things, but
   after this I will have some time to look at the boxes that Greg has
   brought up and see what it will take to bring up Appveyor. If someone
   else would like to pick this up then do let me know.

 * Mark Karpov has done some great work pushing forward some
   patches that I started but didn't have time to finish up. This
   includes,
     * Moving the CircleCI infrastructure to Docker, eliminating a
       spurious testsuite failure [3]

     * Adding a 32-bit Linux target [4]

The following things are rather lacking direction at the moment,

 a. Integration between Phabricator and Appveyor/CircleCI (#14506).

 b. Validation of each commit in a push as both Appveyor and CircleCI
    only build the push head (#14505). This is quite important as having
    a full commit history has been invaluable in identifying
    regressions. I will start pushing commits one-at-a-time until this
    is sorted out.

 c. Artifact preservation. I recommend that we push these to S3 or
    similar to avoid relying on Appveyor/CircleCI's (generally rather
    restrictive) artifact archival facilities.

 d. Hadrian builds seem to non-deterministically hang on CircleCI
    (#14600). I've never observed this locally and have had no luck
    reproducing via SSH on a CircleCI box, so it's unclear what to do
    about this.

 e. Support for building on non-Debian-based systems (e.g. Fedora),
    which is necessary if we want to produce our binary distributions
    via CI

I suspect that after (b) is fixed we will find that the computational
resources of our CircleCI account may be a bit lacking, but we can cross
that bridge once we get there.

Cheers,

- Ben


[1] https://circleci.com/gh/ghc/ghc/tree/master
[2] https://ci.appveyor.com/project/GHCAppveyor/ghc
[3] https://github.com/ghc/ghc/pull/104
[4] https://github.com/ghc/ghc/pull/106
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 487 bytes
Desc: not available
URL: <http://mail.haskell.org/pipermail/ghc-devops-group/attachments/20180305/93a44bfe/attachment.sig>


More information about the Ghc-devops-group mailing list