From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40581) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRJuf-00081B-Td for guix-patches@gnu.org; Mon, 26 Nov 2018 11:39:12 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gRJuY-0001dZ-M2 for guix-patches@gnu.org; Mon, 26 Nov 2018 11:39:09 -0500 Received: from debbugs.gnu.org ([208.118.235.43]:45778) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gRJuY-0001dQ-JI for guix-patches@gnu.org; Mon, 26 Nov 2018 11:39:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1gRJuY-0001XY-Fm for guix-patches@gnu.org; Mon, 26 Nov 2018 11:39:02 -0500 Subject: [bug#33515] [PATCH 0/5] Cuirass/Hydra: evaluate jobs in an inferior Resent-Message-ID: Received: from eggs.gnu.org ([2001:4830:134:3::10]:40199) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRJtp-0007NW-3N for guix-patches@gnu.org; Mon, 26 Nov 2018 11:38:17 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gRJto-0001M1-Ez for guix-patches@gnu.org; Mon, 26 Nov 2018 11:38:17 -0500 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Date: Mon, 26 Nov 2018 17:37:57 +0100 Message-Id: <20181126163757.17399-1-ludo@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: 33515@debbugs.gnu.org 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 -- 2.19.1