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.
This commit is contained in:
@@ -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 }}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user