ci: replace unmaintained fkirc/skip-duplicate-actions with inline git-diff - #3
Merged
Merged
Conversation
…-diff GitHub's CI runner annotation flags fkirc/skip-duplicate-actions@v5.3.1 as running on Node.js 20. Node.js 20 will be forced to Node.js 24 on 2026-06-02 and removed entirely on 2026-09-16. The upstream fkirc/skip-duplicate-actions repository has not shipped a release since 2023-10 and shows no signs of resuming maintenance. Of the action's features, only `paths_ignore` was in use: paths_ignore: '["*.md","*.md.gotmpl",".github/**","docs/**","examples/**"]' concurrent_skipping: false skip_after_successful_duplicate: false Replace with an inline bash step that runs `git diff --name-only` between the appropriate base/head (PR base..head, or before..after for push) and checks whether any changed file falls outside the ignored set. Same output contract (`should_skip=true|false` on $GITHUB_OUTPUT) so the existing `needs.detect-noop.outputs.noop` references on every downstream job continue to work unchanged. Behavioural notes: - First push to a new branch (base == 000…000) short-circuits to should_skip=false; this matches the historical "always run on new branches" behaviour. - Patterns match the original semantics: *.md / *.md.gotmpl anywhere; .github/, docs/, examples/ trees only at repo root, with a trailing slash required (so a hypothetical top-level file named '.github' would not be matched, just like the original glob). - No network calls or third-party action surface; `actions/checkout@v6` is the only remaining external action in this job and is GitHub first-party.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
GitHub's runner annotation on the last CI run flagged
fkirc/skip-duplicate-actions@v5.3.1as a Node.js 20 action:The upstream
fkirc/skip-duplicate-actionsrepository has not shipped a release since 2023-10 and shows no signs of resuming maintenance. Rather than swap one third-party dependency for another, replace it with an inlinegit diffstep. The action's only feature in use waspaths_ignore;concurrent_skippingandskip_after_successful_duplicatewere already disabled in our config, so they don't need replacement.Behavior contract
Exactly preserved:
needs.detect-noop.outputs.noop("true"or"false"), so every downstream job'sifgate works unchanged.*.md,*.md.gotmpl,.github/**,docs/**,examples/**.base == 000…000) →should_skip=false, matching historical "always run on first push".Test plan
python3 -c 'import yaml; yaml.safe_load(...)'clean).actions/checkout@v6is the only remaining action call, GitHub first-party)..github/**so the noop step itself should outputshould_skip=trueagainstmain— i.e. the PR demonstrates its own correctness by skipping downstream jobs).