diff --git a/.github/workflows/eval.yml b/.github/workflows/eval.yml index 8cc523d1bef3..95130ec85d6b 100644 --- a/.github/workflows/eval.yml +++ b/.github/workflows/eval.yml @@ -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=$(> "$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: | diff --git a/.github/workflows/get-merge-commit.yml b/.github/workflows/get-merge-commit.yml index cb38438cae3b..7ce1d53b0249 100644 --- a/.github/workflows/get-merge-commit.yml +++ b/.github/workflows/get-merge-commit.yml @@ -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 > "$GITHUB_OUTPUT" diff --git a/ci/eval/README.md b/ci/eval/README.md index 0436a028ed69..011f3dd74ed0 100644 --- a/ci/eval/README.md +++ b/ci/eval/README.md @@ -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`). diff --git a/ci/eval/default.nix b/ci/eval/default.nix index 639e75ec4211..99445e953183 100644 --- a/ci/eval/default.nix +++ b/ci/eval/default.nix @@ -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 = diff --git a/ci/supportedSystems.json b/ci/supportedSystems.json new file mode 100644 index 000000000000..44c18f1abf0e --- /dev/null +++ b/ci/supportedSystems.json @@ -0,0 +1,6 @@ +[ + "aarch64-linux", + "aarch64-darwin", + "x86_64-linux", + "x86_64-darwin" +] diff --git a/ci/supportedSystems.nix b/ci/supportedSystems.nix deleted file mode 100644 index 471f84b92fc2..000000000000 --- a/ci/supportedSystems.nix +++ /dev/null @@ -1,6 +0,0 @@ -[ - "aarch64-linux" - "aarch64-darwin" - "x86_64-linux" - "x86_64-darwin" -] diff --git a/pkgs/top-level/release-haskell.nix b/pkgs/top-level/release-haskell.nix index deb2290fb521..59ee41b013ea 100644 --- a/pkgs/top-level/release-haskell.nix +++ b/pkgs/top-level/release-haskell.nix @@ -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 diff --git a/pkgs/top-level/release-outpaths.nix b/pkgs/top-level/release-outpaths.nix index e6caabec04e9..8ca14fc95007 100644 --- a/pkgs/top-level/release-outpaths.nix +++ b/pkgs/top-level/release-outpaths.nix @@ -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"); diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix index 31fe8fb38e13..7126252d7976 100644 --- a/pkgs/top-level/release.nix +++ b/pkgs/top-level/release.nix @@ -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"