mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-09 19:13:26 +03:00
workflows/eval: load supportedSystems from JSON file
This is a refactor to prepare the next commit. It doesn't do much on its own, but is separated for ease of review.
This commit is contained in:
parent
04721e38d1
commit
456a4697b1
9 changed files with 23 additions and 21 deletions
7
.github/workflows/eval.yml
vendored
7
.github/workflows/eval.yml
vendored
|
@ -26,7 +26,6 @@ jobs:
|
|||
if: needs.get-merge-commit.outputs.mergedSha
|
||||
outputs:
|
||||
targetSha: ${{ steps.targetSha.outputs.targetSha }}
|
||||
systems: ${{ steps.systems.outputs.systems }}
|
||||
steps:
|
||||
- name: Check out the PR at the test merge commit
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
|
@ -47,11 +46,9 @@ jobs:
|
|||
with:
|
||||
extra_nix_config: sandbox = true
|
||||
|
||||
- name: Evaluate the list of all attributes and get the systems matrix
|
||||
id: systems
|
||||
- name: Evaluate the list of all attributes
|
||||
run: |
|
||||
nix-build nixpkgs/ci -A eval.attrpathsSuperset
|
||||
echo "systems=$(<result/systems.json)" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Upload the list of all attributes
|
||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
||||
|
@ -66,7 +63,7 @@ jobs:
|
|||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
system: ${{ fromJSON(needs.attrs.outputs.systems) }}
|
||||
system: ${{ fromJSON(needs.get-merge-commit.outputs.systems) }}
|
||||
steps:
|
||||
- name: Enable swap
|
||||
run: |
|
||||
|
|
10
.github/workflows/get-merge-commit.yml
vendored
10
.github/workflows/get-merge-commit.yml
vendored
|
@ -6,6 +6,9 @@ on:
|
|||
mergedSha:
|
||||
description: "The merge commit SHA"
|
||||
value: ${{ jobs.resolve-merge-commit.outputs.mergedSha }}
|
||||
systems:
|
||||
description: "The supported systems"
|
||||
value: ${{ jobs.resolve-merge-commit.outputs.systems }}
|
||||
|
||||
permissions: {}
|
||||
|
||||
|
@ -14,6 +17,7 @@ jobs:
|
|||
runs-on: ubuntu-24.04-arm
|
||||
outputs:
|
||||
mergedSha: ${{ steps.merged.outputs.mergedSha }}
|
||||
systems: ${{ steps.systems.outputs.systems }}
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
|
@ -40,4 +44,8 @@ jobs:
|
|||
fi
|
||||
;;
|
||||
esac
|
||||
rm -rf base
|
||||
|
||||
- name: Load supported systems
|
||||
id: systems
|
||||
run: |
|
||||
echo "systems=$(jq -c <base/ci/supportedSystems.json)" >> "$GITHUB_OUTPUT"
|
||||
|
|
|
@ -11,7 +11,7 @@ nix-build ci -A eval.full \
|
|||
--arg evalSystems '["x86_64-linux" "aarch64-darwin"]'
|
||||
```
|
||||
|
||||
- `--max-jobs`: The maximum number of derivations to run at the same time. Only each [supported system](../supportedSystems.nix) gets a separate derivation, so it doesn't make sense to set this higher than that number.
|
||||
- `--max-jobs`: The maximum number of derivations to run at the same time. Only each [supported system](../supportedSystems.json) gets a separate derivation, so it doesn't make sense to set this higher than that number.
|
||||
- `--cores`: The number of cores to use for each job. Recommended to set this to the amount of cores on your system divided by `--max-jobs`.
|
||||
- `chunkSize`: The number of attributes that are evaluated simultaneously on a single core. Lowering this decreases memory usage at the cost of increased evaluation time. If this is too high, there won't be enough chunks to process them in parallel, and will also increase evaluation time.
|
||||
- `evalSystems`: The set of systems for which `nixpkgs` should be evaluated. Defaults to the four official platforms (`x86_64-linux`, `aarch64-linux`, `x86_64-darwin` and `aarch64-darwin`).
|
||||
|
|
|
@ -26,14 +26,14 @@ let
|
|||
"nixos"
|
||||
"pkgs"
|
||||
".version"
|
||||
"ci/supportedSystems.nix"
|
||||
"ci/supportedSystems.json"
|
||||
]
|
||||
);
|
||||
};
|
||||
|
||||
nix = nixVersions.nix_2_24;
|
||||
|
||||
supportedSystems = import ../supportedSystems.nix;
|
||||
supportedSystems = builtins.fromJSON (builtins.readFile ../supportedSystems.json);
|
||||
|
||||
attrpathsSuperset =
|
||||
runCommand "attrpaths-superset.json"
|
||||
|
@ -43,8 +43,6 @@ let
|
|||
nix
|
||||
time
|
||||
];
|
||||
env.supportedSystems = builtins.toJSON supportedSystems;
|
||||
passAsFile = [ "supportedSystems" ];
|
||||
}
|
||||
''
|
||||
export NIX_STATE_DIR=$(mktemp -d)
|
||||
|
@ -58,7 +56,6 @@ let
|
|||
--option restrict-eval true \
|
||||
--option allow-import-from-derivation false \
|
||||
--arg enableWarnings false > $out/paths.json
|
||||
mv "$supportedSystemsPath" $out/systems.json
|
||||
'';
|
||||
|
||||
singleSystem =
|
||||
|
|
6
ci/supportedSystems.json
Normal file
6
ci/supportedSystems.json
Normal file
|
@ -0,0 +1,6 @@
|
|||
[
|
||||
"aarch64-linux",
|
||||
"aarch64-darwin",
|
||||
"x86_64-linux",
|
||||
"x86_64-darwin"
|
||||
]
|
|
@ -1,6 +0,0 @@
|
|||
[
|
||||
"aarch64-linux"
|
||||
"aarch64-darwin"
|
||||
"x86_64-linux"
|
||||
"x86_64-darwin"
|
||||
]
|
|
@ -10,7 +10,7 @@
|
|||
$ hydra-eval-jobs -I . pkgs/top-level/release-haskell.nix
|
||||
*/
|
||||
{
|
||||
supportedSystems ? import ../../ci/supportedSystems.nix,
|
||||
supportedSystems ? builtins.fromJSON (builtins.readFile ../../ci/supportedSystems.json),
|
||||
}:
|
||||
|
||||
let
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
attrNamesOnly ? false,
|
||||
|
||||
# Set this to `null` to build for builtins.currentSystem only
|
||||
systems ? import ../../ci/supportedSystems.nix,
|
||||
systems ? builtins.fromJSON (builtins.readFile ../../ci/supportedSystems.json),
|
||||
}:
|
||||
let
|
||||
lib = import (path + "/lib");
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
system ? builtins.currentSystem,
|
||||
officialRelease ? false,
|
||||
# The platform doubles for which we build Nixpkgs.
|
||||
supportedSystems ? import ../../ci/supportedSystems.nix,
|
||||
supportedSystems ? builtins.fromJSON (builtins.readFile ../../ci/supportedSystems.json),
|
||||
# The platform triples for which we build bootstrap tools.
|
||||
bootstrapConfigs ? [
|
||||
"aarch64-apple-darwin"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue