ci: move off the deprecated Node 20 action runtime - #58
Open
JacobPEvans-personal wants to merge 3 commits into
Open
ci: move off the deprecated Node 20 action runtime#58JacobPEvans-personal wants to merge 3 commits into
JacobPEvans-personal wants to merge 3 commits into
Conversation
GitHub is retiring Node 20 on Actions runners, and two actions still targeted it. Bump the artifact upload action to a Node 24 release, and replace the third-party paths-filter action with a short git script. The script keeps the cost filter readable and removes a dependency rather than trading one pinned action for another. A unit test reads the pattern out of the script and pins which paths do and do not trigger a live Splunk run, so the filter cannot silently widen or narrow. Assisted-by: Claude:claude-fable-5 Claude-Session: https://claude.ai/code/session_0117oTjSHHjg1nh28LGRZ7My
The script was committed without its executable bit, so the step failed with exit 126 before running. Set the bit, and invoke through `bash` so the job no longer depends on that bit surviving a checkout. Also fetch the base branch into an explicit remote-tracking ref. `git fetch origin <branch>` only updates FETCH_HEAD unless a matching refspec happens to be configured, so `origin/<branch>` could fail to resolve in the diff below it. Assisted-by: Claude:claude-fable-5 Claude-Session: https://claude.ai/code/session_0117oTjSHHjg1nh28LGRZ7My
…seable
An apostrophe inside ${VAR:?message} opens a quote that bash never closes, even
though the whole expansion sits in double quotes. The script failed to parse,
and bash reported the error at a later line where the next quote appeared,
which pointed away from the real mistake.
Reword the message without an apostrophe, and add a test that runs `bash -n`
over the script so a syntax error fails locally instead of only in CI.
Assisted-by: Claude:claude-fable-5
Claude-Session: https://claude.ai/code/session_0117oTjSHHjg1nh28LGRZ7My
JacobPEvans-personal
force-pushed
the
ci/node24-actions
branch
from
August 1, 2026 01:08
5407fdd to
cfbc8d4
Compare
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.
Stacked on #57.
What
actions/upload-artifactto a Node 24 release (inci.ymlandcloud-read.yml).dorny/paths-filterwith.github/scripts/detect-code-changes.sh, a shortgit diffscript.tests/unit/test_ci_path_filter.py, which reads the pattern out of the script and pins which paths do and do not trigger a live Splunk run.Why
GitHub is retiring Node 20 on Actions runners, and the workflow logs a deprecation warning for every action still targeting it. Two did.
For the paths filter, swapping one pinned third-party action for another would fix the warning but keep the dependency.
git diffalready does the job in six lines, so this removes the dependency instead.Proof
node24or a composite action (checked via the GitHub API against each pinned ref).docs/pyproject.toml,notes/src/scratch.py).