[GHC] #13716: Move CI to Jenkins
GHC
ghc-devs at haskell.org
Wed May 17 22:46:31 UTC 2017
#13716: Move CI to Jenkins
-------------------------------------+-------------------------------------
Reporter: bgamari | Owner: (none)
Type: task | Status: new
Priority: normal | Milestone:
Component: None | Version: 8.0.1
Keywords: | Operating System: Unknown/Multiple
Architecture: | Type of failure: None/Unknown
Unknown/Multiple |
Test Case: | Blocked By:
Blocking: | Related Tickets:
Differential Rev(s): | Wiki Page:
-------------------------------------+-------------------------------------
Currently we use Harbormaster to build Differentials and commits. While
this works, it leaves much to be desired,
* job scheduling is (literally) random: this means that some patch
authors end up waiting literally ways for their patches to be built
* there is little support for automatic provisioning of builders: this
means we can't scale to meet demand and make poor use of our computational
resources
* periodic builds (e.g. nightlies) are not supported. Ideally we would
not only provide
* it doesn't have a sensible interface for integration with external
tools: this means that efforts like CI-before-merge have been pushed off
* status reporting is poor: even answering the question of what a given
builder is currently working on is surprisingly difficult
* maintenance is a byzantine: Adding a new builder requires adding at
least six different objects (a Harbormaster Build Plan, a Drydock Working
Copy, a Drydock Blueprint, an Almanac Service, an Almanac Device, and an
Almanac Binding) in various Phabricator applications. None of this
configuration can be tracked under version control nor can most of it be
cloned from an existing builder's configuration.
* Design assumptions don't match GHC's constraints: Harbormaster was
designed under the assumption that builds are cheap and computation
plentiful. The maintainers have stated that they have little interest in
supporting environments where this doesn't hold.
Jenkins, while far from perfect, seems a bit better suited to our needs,
more mature, and far more flexible. This ticket will serve as the
checklist for our move to Jenkins.
In the end we want,
* Builders (static or dynamically-provisioned, as appropriate) for
* x86-64, i386 Linux
* x86-64, i386 Windows
* x86-64 Darwin
* x86-64 OpenBSD
* Cross compile from x86-64 to ARM
* Native ARM
* Differential builds with sensible scheduling (e.g. first build on
64-bit Linux where machines are cheap, then build on the others)
* Per-commit builds on all
* Nightly builds on all, including
* Collection of binary distribution for user download
* Update of `master` documentation mirror on downloads.haskell.org
* Slow validation (including tests requiring Hackage packages)
* nofib run on some platforms?
* Test-before-merge-to-master
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13716>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list