lol
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

workflows/eval: remove attrs step

Previously, the attrs step consisted of:
- 7s queue time
- 1m 15s run time

Only 25s of this were spent preparing the attr paths. A bit more than a
minute was just spent for queuing, checking out the repo, downloading
nix, downloading dependencies, uploading the artifacts - and then
downloading them again in the next step. All of that can be avoided if
we collect the attrs as part of the outpaths job.

By running the attrs step as part of each outpaths step the attrpaths
will be collected 4x, but:
- We save a minute for each eval run to complete.
- We save a full job, giving us more free runners and *possibly* less
queue times for other jobs in the repo.
- We reduce complexity in the workflow file.

+4 -39
+3 -37
.github/workflows/eval.yml
··· 19 19 get-merge-commit: 20 20 uses: ./.github/workflows/get-merge-commit.yml 21 21 22 - attrs: 23 - name: Attributes 24 - runs-on: ubuntu-24.04-arm 25 - needs: get-merge-commit 26 - if: needs.get-merge-commit.outputs.mergedSha 27 - steps: 28 - - name: Check out the PR at the test merge commit 29 - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 30 - with: 31 - ref: ${{ needs.get-merge-commit.outputs.mergedSha }} 32 - path: nixpkgs 33 - 34 - - name: Install Nix 35 - uses: cachix/install-nix-action@526118121621777ccd86f79b04685a9319637641 # v31 36 - with: 37 - extra_nix_config: sandbox = true 38 - 39 - - name: Evaluate the list of all attributes 40 - run: | 41 - nix-build nixpkgs/ci -A eval.attrpathsSuperset 42 - 43 - - name: Upload the list of all attributes 44 - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 45 - with: 46 - name: paths 47 - path: result/* 48 - 49 22 outpaths: 50 23 name: Outpaths 51 24 runs-on: ubuntu-24.04-arm 52 - needs: [ attrs, get-merge-commit ] 25 + needs: [ get-merge-commit ] 53 26 strategy: 54 27 fail-fast: false 55 28 matrix: ··· 62 35 sudo mkswap /swap 63 36 sudo swapon /swap 64 37 65 - - name: Download the list of all attributes 66 - uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 67 - with: 68 - name: paths 69 - path: paths 70 - 71 38 - name: Check out the PR at the test merge commit 72 39 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 73 40 with: ··· 85 52 run: | 86 53 nix-build nixpkgs/ci -A eval.singleSystem \ 87 54 --argstr evalSystem "$MATRIX_SYSTEM" \ 88 - --arg attrpathFile ./paths/paths.json \ 89 55 --arg chunkSize 10000 90 56 # If it uses too much memory, slightly decrease chunkSize 91 57 ··· 98 64 process: 99 65 name: Process 100 66 runs-on: ubuntu-24.04-arm 101 - needs: [ outpaths, attrs, get-merge-commit ] 67 + needs: [ outpaths, get-merge-commit ] 102 68 outputs: 103 69 targetRunId: ${{ steps.targetRunId.outputs.targetRunId }} 104 70 steps: ··· 200 166 tag: 201 167 name: Tag 202 168 runs-on: ubuntu-24.04-arm 203 - needs: [ attrs, process ] 169 + needs: [ process ] 204 170 if: needs.process.outputs.targetRunId 205 171 permissions: 206 172 pull-requests: write
+1 -2
ci/eval/default.nix
··· 65 65 # because `--argstr system` would only be passed to the ci/default.nix file! 66 66 evalSystem, 67 67 # The path to the `paths.json` file from `attrpathsSuperset` 68 - attrpathFile, 68 + attrpathFile ? "${attrpathsSuperset}/paths.json", 69 69 # The number of attributes per chunk, see ./README.md for more info. 70 70 chunkSize, 71 71 checkMeta ? true, ··· 286 286 name = evalSystem; 287 287 path = singleSystem { 288 288 inherit quickTest evalSystem chunkSize; 289 - attrpathFile = attrpathsSuperset + "/paths.json"; 290 289 }; 291 290 }) evalSystems 292 291 );