diff options
Diffstat (limited to '.github/workflows/check-by-name.yml')
-rw-r--r-- | .github/workflows/check-by-name.yml | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/.github/workflows/check-by-name.yml b/.github/workflows/check-by-name.yml index 9152a2a61708e..94875e67b6497 100644 --- a/.github/workflows/check-by-name.yml +++ b/.github/workflows/check-by-name.yml @@ -4,11 +4,19 @@ # When you make changes to this workflow, also update pkgs/test/nixpkgs-check-by-name/scripts/run-local.sh adequately name: Check pkgs/by-name -# The pre-built tool is fetched from a channel, -# making it work predictable on all PRs. +# The tool is pinned to a pre-built version on Hydra, +# see pkgs/test/nixpkgs-check-by-name/scripts/README.md on: # Using pull_request_target instead of pull_request avoids having to approve first time contributors - pull_request_target + pull_request_target: + # This workflow depends on the base branch of the PR, + # but changing the base branch is not included in the default trigger events, + # which would be `opened`, `synchronize` or `reopened`. + # Instead it causes an `edited` event, so we need to add it explicitly here + # While `edited` is also triggered when the PR title/body is changed, + # this PR action is fairly quick, and PR's don't get edited that often, + # so it shouldn't be a problem + types: [opened, synchronize, reopened, edited] permissions: # We need this permission to cancel the workflow run if there's a merge conflict @@ -90,9 +98,14 @@ jobs: base=$(mktemp -d) git worktree add "$base" "$(git rev-parse HEAD^1)" echo "base=$base" >> "$GITHUB_ENV" - - uses: cachix/install-nix-action@7ac1ec25491415c381d9b62f0657c7a028df52a7 # v24 - - name: Fetching the tool - run: pkgs/test/nixpkgs-check-by-name/scripts/fetch-pinned-tool.sh result + - uses: cachix/install-nix-action@6004951b182f8860210c8d6f0d808ec5b1a33d28 # v25 + - name: Fetching the pinned tool + # Update the pinned version using pkgs/test/nixpkgs-check-by-name/scripts/update-pinned-tool.sh + run: | + # Get the direct /nix/store path from the pin to avoid having to evaluate Nixpkgs + toolPath=$(jq -r '."ci-path"' pkgs/test/nixpkgs-check-by-name/scripts/pinned-tool.json) + # This asks the substituter for the path, which should be there because Hydra will have pre-built and pushed it + nix-store --realise "$toolPath" --add-root result - name: Running nixpkgs-check-by-name run: | if result/bin/nixpkgs-check-by-name --base "$base" .; then |