Commit 4e6b5639 authored by Silvan Mosberger's avatar Silvan Mosberger
Browse files

workflows: Consistently condition on merge commit

Before the get-merge-commit was put into a separate workflow job, it ran
as a step, which then required skipping all subsequent steps
individually. This is not necessary anymore, because entire workflow
jobs can be skipped.

This commit consistently applies that change throughout all workflows.
parent 83d4c9d2
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -15,9 +15,9 @@ jobs:
    name: nixpkgs-lib-tests
    runs-on: ubuntu-latest
    needs: get-merge-commit
    if: needs.get-merge-commit.outputs.mergedSha
    steps:
      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
        if: needs.get-merge-commit.outputs.mergedSha
        with:
          # pull_request_target checks out the base branch by default
          ref: ${{ needs.get-merge-commit.outputs.mergedSha }}
+9 −16
Original line number Diff line number Diff line
@@ -23,22 +23,21 @@ jobs:
    name: Attributes
    runs-on: ubuntu-latest
    needs: get-merge-commit
    # Skip this and dependent steps if the PR can't be merged
    if: needs.get-merge-commit.outputs.mergedSha
    outputs:
      mergedSha: ${{ needs.get-merge-commit.outputs.mergedSha }}
      baseSha: ${{ steps.baseSha.outputs.baseSha }}
      systems: ${{ steps.systems.outputs.systems }}
    steps:
      - name: Check out the PR at the test merge commit
        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
        # Add this to _all_ subsequent steps to skip them
        if: needs.get-merge-commit.outputs.mergedSha
        with:
          ref: ${{ needs.get-merge-commit.outputs.mergedSha }}
          fetch-depth: 2
          path: nixpkgs

      - name: Determine base commit
        if: github.event_name == 'pull_request_target' && needs.get-merge-commit.outputs.mergedSha
        if: github.event_name == 'pull_request_target'
        id: baseSha
        run: |
          baseSha=$(git -C nixpkgs rev-parse HEAD^1)
@@ -46,18 +45,15 @@ jobs:

      - name: Install Nix
        uses: cachix/install-nix-action@08dcb3a5e62fa31e2da3d490afc4176ef55ecd72 # v30
        if: needs.get-merge-commit.outputs.mergedSha

      - name: Evaluate the list of all attributes and get the systems matrix
        id: systems
        if: needs.get-merge-commit.outputs.mergedSha
        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@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
        if: needs.get-merge-commit.outputs.mergedSha
        with:
          name: paths
          path: result/*
@@ -65,12 +61,12 @@ jobs:
  eval-aliases:
    name: Eval nixpkgs with aliases enabled
    runs-on: ubuntu-latest
    needs: attrs
    needs: [ attrs, get-merge-commit ]
    steps:
      - name: Check out the PR at the test merge commit
        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
        with:
          ref: ${{ needs.attrs.outputs.mergedSha }}
          ref: ${{ needs.get-merge-commit.outputs.mergedSha }}
          path: nixpkgs

      - name: Install Nix
@@ -83,9 +79,7 @@ jobs:
  outpaths:
    name: Outpaths
    runs-on: ubuntu-latest
    needs: attrs
    # Skip this and future steps if the PR can't be merged
    if: needs.attrs.outputs.mergedSha
    needs: [ attrs, get-merge-commit ]
    strategy:
      matrix:
        system: ${{ fromJSON(needs.attrs.outputs.systems) }}
@@ -99,7 +93,7 @@ jobs:
      - name: Check out the PR at the test merge commit
        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
        with:
          ref: ${{ needs.attrs.outputs.mergedSha }}
          ref: ${{ needs.get-merge-commit.outputs.mergedSha }}
          path: nixpkgs

      - name: Install Nix
@@ -117,7 +111,6 @@ jobs:

      - name: Upload the output paths and eval stats
        uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
        if: needs.attrs.outputs.mergedSha
        with:
          name: intermediate-${{ matrix.system }}
          path: result/*
@@ -125,7 +118,7 @@ jobs:
  process:
    name: Process
    runs-on: ubuntu-latest
    needs: [ outpaths, attrs ]
    needs: [ outpaths, attrs, get-merge-commit ]
    outputs:
      baseRunId: ${{ steps.baseRunId.outputs.baseRunId }}
    steps:
@@ -138,7 +131,7 @@ jobs:
      - name: Check out the PR at the test merge commit
        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
        with:
          ref: ${{ needs.attrs.outputs.mergedSha }}
          ref: ${{ needs.get-merge-commit.outputs.mergedSha }}
          path: nixpkgs

      - name: Install Nix
+1 −5
Original line number Diff line number Diff line
@@ -29,24 +29,21 @@ jobs:
    # This should take 1 minute at most, but let's be generous. The default of 6 hours is definitely too long.
    timeout-minutes: 10
    needs: get-merge-commit
    if: needs.get-merge-commit.outputs.mergedSha
    steps:
      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
        if: needs.get-merge-commit.outputs.mergedSha
        with:
          # pull_request_target checks out the base branch by default
          ref: ${{ needs.get-merge-commit.outputs.mergedSha }}
          # Fetches the merge commit and its parents
          fetch-depth: 2
      - name: Checking out base branch
        if: needs.get-merge-commit.outputs.mergedSha
        run: |
          base=$(mktemp -d)
          git worktree add "$base" "$(git rev-parse HEAD^1)"
          echo "base=$base" >> "$GITHUB_ENV"
      - uses: cachix/install-nix-action@08dcb3a5e62fa31e2da3d490afc4176ef55ecd72 # v30
        if: needs.get-merge-commit.outputs.mergedSha
      - name: Fetching the pinned tool
        if: needs.get-merge-commit.outputs.mergedSha
        # Update the pinned version using ci/nixpkgs-vet/update-pinned-tool.sh
        run: |
          # The pinned version of the tooling to use.
@@ -59,7 +56,6 @@ jobs:
          # Adds a result symlink as a GC root.
          nix-store --realise "$toolPath" --add-root result
      - name: Running nixpkgs-vet
        if: needs.get-merge-commit.outputs.mergedSha
        env:
          # Force terminal colors to be enabled. The library that `nixpkgs-vet` uses respects https://bixense.com/clicolors/
          CLICOLOR_FORCE: 1