From b2d4dc491e744ff3a367f24d2b106d5ca607f4a3 Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Tue, 22 Oct 2019 17:58:45 +0200 Subject: [PATCH] Hydra: build Solo5 PRs using release derivation This just makes it easier to run the tests as well. --- hydra/jobsets.nix | 89 +++++++++++++++++++++++--------------------- hydra/solo5-jobs.nix | 63 ++++++++++++------------------- hydra/solo5.nix | 19 +++++++--- 3 files changed, 83 insertions(+), 88 deletions(-) diff --git a/hydra/jobsets.nix b/hydra/jobsets.nix index 6284bcd..5f528bd 100644 --- a/hydra/jobsets.nix +++ b/hydra/jobsets.nix @@ -18,54 +18,59 @@ let keepnr = 8; }; - solo5 = import ./solo5-jobs.nix { pullRequests = solo5PullRequests; }; + releaseInputs = { + + dhall-haskell = { + type = "git"; + value = "https://github.com/dhall-lang/dhall-haskell.git master"; + emailresponsible = false; + }; + + dhallNixpkgsStaticLinux = { + type = "git"; + value = + "https://github.com/nh2/nixpkgs.git 925aac04f4ca58aceb83beef18cb7dae0715421b"; + emailresponsible = false; + }; + + dhallNixpkgs = { + type = "git"; + value = + "https://gitea.c3d2.de/ehmry/nixpkgs.git 1d4de0d552ae9aa66a5b8dee5fb0650a4372d148"; + emailresponsible = false; + }; + + genodepkgs = { + type = "git"; + value = "https://gitea.c3d2.de/ehmry/genodepkgs.git master"; + emailresponsible = false; + }; + + nixpkgs = { + type = "git"; + value = "https://gitea.c3d2.de/ehmry/nixpkgs.git hybrid-19.09"; + emailresponsible = false; + }; + + nim-overlay = { + type = "git"; + value = "https://git.sr.ht/~ehmry/nim-overlay"; + emailresponsible = false; + }; + + }; + + solo5 = import ./solo5-jobs.nix { + inherit releaseInputs; + pullRequests = solo5PullRequests; + }; jobsets = ({ trunk = mkJobSet { description = "Genodepkgs master branch"; nixexprpath = "release.nix"; - inputs = { - - dhall-haskell = { - type = "git"; - value = "https://github.com/dhall-lang/dhall-haskell.git master"; - emailresponsible = false; - }; - - dhallNixpkgsStaticLinux = { - type = "git"; - value = - "https://github.com/nh2/nixpkgs.git 925aac04f4ca58aceb83beef18cb7dae0715421b"; - emailresponsible = false; - }; - - dhallNixpkgs = { - type = "git"; - value = - "https://gitea.c3d2.de/ehmry/nixpkgs.git 1d4de0d552ae9aa66a5b8dee5fb0650a4372d148"; - emailresponsible = false; - }; - - genodepkgs = { - type = "git"; - value = "https://gitea.c3d2.de/ehmry/genodepkgs.git master"; - emailresponsible = false; - }; - - nixpkgs = { - type = "git"; - value = "https://gitea.c3d2.de/ehmry/nixpkgs.git hybrid-19.09"; - emailresponsible = false; - }; - - nim-overlay = { - type = "git"; - value = "https://git.sr.ht/~ehmry/nim-overlay"; - emailresponsible = false; - }; - - }; + inputs = releaseInputs; }; } // solo5); diff --git a/hydra/solo5-jobs.nix b/hydra/solo5-jobs.nix index 9108d80..22aec68 100644 --- a/hydra/solo5-jobs.nix +++ b/hydra/solo5-jobs.nix @@ -2,59 +2,42 @@ # # SPDX-License-Identifier: LicenseRef-Hippocratic-1.1 -{ pullRequests }: +{ releaseInputs, pullRequests }: with builtins; let pullRequests' = fromJSON (readFile pullRequests); - prToJob = pr: - { - name = "solo5-${toString pr.number}"; - value = { + prToJob = pr: { + name = "solo5-${toString pr.number}"; + value = { - description = pr.title; - nixexprpath = "hydra/solo5.nix"; - enabled = 1; - hidden = false; - nixexprinput = "genodepkgs"; - checkinterval = 300; - schedulingshares = 100; - enableemail = false; - emailoverride = ""; - keepnr = 8; + description = pr.title; + nixexprpath = "hydra/solo5.nix"; + enabled = 1; + hidden = false; + nixexprinput = "genodepkgs"; + checkinterval = 300; + schedulingshares = 100; + enableemail = false; + emailoverride = ""; + keepnr = 8; - inputs = { - - prSrc = { - type = "git"; - value = "https://github.com/Solo5/solo5.git pull/${toString pr.number}/head"; - emailresponsible = false; - }; - - genodepkgs = { - type = "git"; - value = "https://gitea.c3d2.de/ehmry/genodepkgs.git master"; - emailresponsible = false; - }; - - nixpkgs = { - type = "git"; - value = "https://gitea.c3d2.de/ehmry/nixpkgs.git hybrid-19.09"; - emailresponsible = false; - }; - - nim-overlay = { - type = "git"; - value = "https://git.sr.ht/~ehmry/nim-overlay"; - emailresponsible = false; - }; + inputs = releaseInputs // { + prSrc = { + type = "git"; + value = "https://github.com/Solo5/solo5.git pull/${ + toString pr.number + }/head"; + emailresponsible = false; }; }; + }; + }; jobs = map prToJob (attrValues pullRequests'); diff --git a/hydra/solo5.nix b/hydra/solo5.nix index 995eea3..782adf3 100644 --- a/hydra/solo5.nix +++ b/hydra/solo5.nix @@ -2,11 +2,16 @@ # # SPDX-License-Identifier: LicenseRef-Hippocratic-1.1 -{ genodepkgs, nixpkgs, nim-overlay, prSrc }: +{ genodepkgs, nixpkgs, dhall-haskell, dhallNixpkgs, dhallNixpkgsStaticLinux +, nim-overlay, prSrc }: -let pkgs = import genodepkgs { inherit nixpkgs nim-overlay; }; -in { - build.x86_64.solo5 = pkgs.solo5.overrideAttrs (attrs: { +let + release = import ../release.nix { + inherit dhall-haskell dhallNixpkgs dhallNixpkgsStaticLinux nixpkgs + genodepkgs nim-overlay; + }; + + prOverride = attrs: { src = prSrc; preConfigure = '' cat <include/solo5/solo5_version.h.distrib @@ -16,5 +21,7 @@ in { #endif EOM ''; - }); -} + }; + +in +{ build.x86_64.solo5 = pkgs.solo5.overrideAttrs prOverride; }