1
1
Fork 0
mirror of https://github.com/NixOS/nix.git synced 2025-11-15 15:02:42 +01:00

Parallelize the flake regression suite

This commit is contained in:
Graham Christensen 2025-06-13 13:46:31 -04:00
parent 49a059d426
commit c7d80871ac

View file

@ -95,7 +95,8 @@ jobs:
if: | if: |
(inputs.run_regression_tests && github.event_name == 'merge_group') (inputs.run_regression_tests && github.event_name == 'merge_group')
|| ( || (
github.event.pull_request.head.repo.full_name == 'DeterminateSystems/nix-src' inputs.run_regression_tests
&& github.event.pull_request.head.repo.full_name == 'DeterminateSystems/nix-src'
&& ( && (
(github.event.action == 'labeled' && github.event.label.name == 'flake-regression-test') (github.event.action == 'labeled' && github.event.label.name == 'flake-regression-test')
|| (github.event.action != 'labeled' && contains(github.event.pull_request.labels.*.name, 'flake-regression-test')) || (github.event.action != 'labeled' && contains(github.event.pull_request.labels.*.name, 'flake-regression-test'))
@ -103,6 +104,16 @@ jobs:
) )
needs: build needs: build
runs-on: ${{ inputs.runner }} runs-on: ${{ inputs.runner }}
strategy:
matrix:
nix_config:
- "lazy-trees = true"
- "lazy-trees = false"
glob:
- "[0-d]*"
- "[e-l]*"
- "[m-r]*"
- "[s-z]*"
steps: steps:
- name: Checkout nix - name: Checkout nix
uses: actions/checkout@v4 uses: actions/checkout@v4
@ -118,36 +129,14 @@ jobs:
path: flake-regressions/tests path: flake-regressions/tests
- uses: DeterminateSystems/determinate-nix-action@main - uses: DeterminateSystems/determinate-nix-action@main
- uses: DeterminateSystems/flakehub-cache-action@main - uses: DeterminateSystems/flakehub-cache-action@main
- run: nix build -L --out-link ./new-nix && PATH=$(pwd)/new-nix/bin:$PATH PARALLEL="-P 50%" flake-regressions/eval-all.sh - env:
PARALLEL: "-P 50%"
flake_regressions_lazy: FLAKE_REGRESSION_GLOB: ${{ matrix.glob }}
if: | NIX_CONFIG: ${{ matrix.nix_config }}
(inputs.run_regression_tests && github.event_name == 'merge_group') run: |
|| ( nix build -L --out-link ./new-nix
github.event.pull_request.head.repo.full_name == 'DeterminateSystems/nix-src' export PATH=$(pwd)/new-nix/bin:$PATH
&& ( flake-regressions/eval-all.sh
(github.event.action == 'labeled' && github.event.label.name == 'flake-regression-test')
|| (github.event.action != 'labeled' && contains(github.event.pull_request.labels.*.name, 'flake-regression-test'))
)
)
needs: build
runs-on: ${{ inputs.runner }}
steps:
- name: Checkout nix
uses: actions/checkout@v4
- name: Checkout flake-regressions
uses: actions/checkout@v4
with:
repository: DeterminateSystems/flake-regressions
path: flake-regressions
- name: Checkout flake-regressions-data
uses: actions/checkout@v4
with:
repository: DeterminateSystems/flake-regressions-data
path: flake-regressions/tests
- uses: DeterminateSystems/determinate-nix-action@main
- uses: DeterminateSystems/flakehub-cache-action@main
- run: nix build -L --out-link ./new-nix && PATH=$(pwd)/new-nix/bin:$PATH PARALLEL="-P 50%" NIX_CONFIG="lazy-trees = true" flake-regressions/eval-all.sh
manual: manual:
if: github.event_name != 'merge_group' if: github.event_name != 'merge_group'
@ -190,7 +179,6 @@ jobs:
- vm_tests_smoke - vm_tests_smoke
- vm_tests_all - vm_tests_all
- flake_regressions - flake_regressions
- flake_regressions_lazy
- manual - manual
if: ${{ always() }} if: ${{ always() }}
runs-on: ubuntu-latest runs-on: ubuntu-latest