mbox

[bug#33515,0/5] Cuirass/Hydra: evaluate jobs in an inferior

Message ID 20181126163757.17399-1-ludo@gnu.org
Headers show

Message

Ludovic Courtès Nov. 26, 2018, 4:37 p.m. UTC
Hello Guix!

This patch set changes the way we compute continuous integration jobs:
instead of letting Guile auto-compile all of Guix from its checkout,
we first build Guix in the same way as ‘guix pull’, open an inferior
to that Guix, and run the job evaluation code in that inferior.

I think it’s cleaner and it should be faster and less resource-hungry
than the current approach.

The build-aux/hydra/gnu-system.scm file will now rely on the
(guix channels) and (guix inferior) with the new ‘checkout->channel-instance’
and ‘inferior-eval-with-store’ procedures, which means that Cuirass
(and Hydra) will need to be using a recent Guix to be able to perform
the evaluation.  Apart from that ‘gnu-system.scm’ is rather decoupled
from the Guix APIs.

To test it for real, we’ll first have to apply the patches that add these
two procedures to ‘master’ and to update the ‘guix’ package so we can
have a Cuirass instance running the latest and greatest.

Thoughts?

Ludo’.

Ludovic Courtès (5):
  inferior: Add 'inferior-eval-with-store'.
  hydra: Move job definitions to (gnu ci).
  hydra: evaluate: Add the checkout to the store.
  channels: Add 'checkout->channel-instance'.
  hydra: Compute jobs in an inferior.

 build-aux/hydra/evaluate.scm   |  55 ++--
 build-aux/hydra/gnu-system.scm | 448 +++------------------------------
 gnu/ci.scm                     | 440 ++++++++++++++++++++++++++++++++
 gnu/local.mk                   |   4 +-
 guix/channels.scm              |  12 +
 guix/inferior.scm              |  70 ++++--
 guix/self.scm                  |   3 +-
 tests/inferior.scm             |   9 +
 8 files changed, 573 insertions(+), 468 deletions(-)
 create mode 100644 gnu/ci.scm