Skip to content

Commit c83b33f

Browse files
authored
Split checking hydra eval on buildkite (#1633)
1 parent 7215ad8 commit c83b33f

File tree

3 files changed

+37
-10
lines changed

3 files changed

+37
-10
lines changed

.buildkite/pipeline.yml

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -74,13 +74,39 @@ steps:
7474
agents:
7575
system: x86_64-linux
7676

77-
- label: 'Check that jobset will evaluate in Hydra'
77+
- label: 'Check that jobset will evaluate in Hydra at ifdLevel 0 and 1'
7878
command:
7979
- nix-build build.nix -A maintainer-scripts.check-hydra -o check-hydra.sh
80-
- ./check-hydra.sh 0
81-
- ./check-hydra.sh 1
82-
- ./check-hydra.sh 2
83-
- ./check-hydra.sh 3
80+
- ./check-hydra.sh --arg ifdLevel 0
81+
- ./check-hydra.sh --arg ifdLevel 1
82+
agents:
83+
system: x86_64-linux
84+
85+
- label: 'Check that jobset will evaluate in Hydra at ifdLevel 2'
86+
command:
87+
- nix-build build.nix -A maintainer-scripts.check-hydra -o check-hydra.sh
88+
- ./check-hydra.sh --arg ifdLevel 2
89+
agents:
90+
system: x86_64-linux
91+
92+
- label: 'Check that jobset will evaluate in Hydra at ifdLevel 3 and ghc 8.10'
93+
command:
94+
- nix-build build.nix -A maintainer-scripts.check-hydra -o check-hydra.sh
95+
- "./check-hydra.sh --arg ifdLevel 3 --arg include 'x: __substring 0 6 x == \"ghc810\"'"
96+
agents:
97+
system: x86_64-linux
98+
99+
- label: 'Check that jobset will evaluate in Hydra at ifdLevel 3 and ghc 9.2'
100+
command:
101+
- nix-build build.nix -A maintainer-scripts.check-hydra -o check-hydra.sh
102+
- "./check-hydra.sh --arg ifdLevel 3 --arg include 'x: __substring 0 5 x == \"ghc92\"'"
103+
agents:
104+
system: x86_64-linux
105+
106+
- label: 'Check that jobset will evaluate in Hydra at ifdLevel 3 and not (ghc 8.10 or ghc 9.2)'
107+
command:
108+
- nix-build build.nix -A maintainer-scripts.check-hydra -o check-hydra.sh
109+
- "./check-hydra.sh --arg ifdLevel 3 --arg include 'x: !(__substring 0 6 x == \"ghc810\" || __substring 0 5 x == \"ghc92\")'"
84110
agents:
85111
system: x86_64-linux
86112

release.nix

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
# on a machine with e.g. no way to build the Darwin IFDs you need!
33
{ supportedSystems ? [ "x86_64-linux" "x86_64-darwin" ]
44
, ifdLevel ? 3
5+
, include ? (compiler-nix-name: true)
56
, checkMaterialization ? false }:
67

78
let
@@ -16,7 +17,7 @@ let
1617
lib = genericPkgs.lib;
1718
ci = import ./ci.nix { inherit supportedSystems ifdLevel checkMaterialization; restrictEval = true; };
1819
allJobs = stripAttrsForHydra (filterDerivations ci);
19-
latestJobs = {
20+
latestJobs = lib.optionalAttrs (include "ghc8107") {
2021
# All the jobs are included in the `requiredJobs`, but the ones
2122
# added here will also included without aggregation, making it easier
2223
# to find a failing test. Keep in mind though that adding too many
@@ -32,7 +33,7 @@ let
3233
let nixpkgsJobs = allJobs.${nixpkgsVer};
3334
in lib.concatMap (compiler-nix-name:
3435
let ghcJobs = nixpkgsJobs.${compiler-nix-name};
35-
in builtins.concatMap (platform:
36+
in lib.optionals (include compiler-nix-name) (builtins.concatMap (platform:
3637
let platformJobs = ghcJobs.${platform};
3738
in builtins.map (crossPlatform: {
3839
name = "required-${nixpkgsVer}-${compiler-nix-name}-${platform}-${crossPlatform}";
@@ -42,7 +43,7 @@ let
4243
constituents = lib.collect (d: lib.isDerivation d) platformJobs.${crossPlatform};
4344
};
4445
}) (names platformJobs)
45-
) (names ghcJobs)
46+
) (names ghcJobs))
4647
) (names nixpkgsJobs)
4748
) (names allJobs));
4849
in traceNames "job " (latestJobs // requiredJobs // {

scripts/check-hydra.nix

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ writeScript "check-hydra.sh" ''
1010
export PATH="${makeBinPath [ coreutils time gnutar gzip hydra-unstable jq gitMinimal ]}"
1111
export NIX_PATH=
1212
13-
echo '~~~ Evaluating release.nix with --arg ifdLevel '$1
13+
echo '~~~ Evaluating release.nix with' "$@"
1414
command time --format '%e' -o eval-time.txt \
1515
hydra-eval-jobs \
1616
--option allowed-uris "https://github.com/NixOS https://github.com/input-output-hk" \
1717
--arg supportedSystems '[ builtins.currentSystem ]' \
18-
--arg ifdLevel $1 \
18+
"$@" \
1919
-I $(realpath .) release.nix > eval.json
2020
EVAL_EXIT_CODE="$?"
2121
if [ "$EVAL_EXIT_CODE" != 0 ]

0 commit comments

Comments
 (0)