CD workflows: pin GitHub Actions to @v4 instead of @master
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 78/100
- Issue type
- Refactor
- Clarity
- Clearly specified
- Activity status
- Quiet
- Tech stack
- github-actions
- Domain
- ci-cd
Research direction
Start with .github/workflows/cd_dev.yaml and .github/workflows/cd_prod.yaml, then compare their action references with tests.yaml and shared_openapi_sync.yaml. Replace the listed @master references with @v4 and verify that no @master references remain under .github/workflows/; CI passing completes the work.
Written by the indexing model from the issue text.
Description
Summary
Our CD workflows pin GitHub Actions to the moving @master branch instead of a stable major-version tag like @v4. Every workflow run silently picks up whatever HEAD of actions/checkout, actions/setup-node, and actions/cache happens to be — there is no diff in this repo when those upstream branches change, so a green PR yesterday can fail today for reasons we cannot see.
Affected workflows
.github/workflows/cd_dev.yaml— 5 occurrences (3×actions/checkout@master, 1×actions/setup-node@master, 1×actions/cache@master).github/workflows/cd_prod.yaml— 2 occurrences ofactions/checkout@master
Our newer workflows (tests.yaml, shared_openapi_sync.yaml) already pin actions/checkout@v4 and actions/setup-node@v4, so the inconsistency is internal to this repo too.
Why this matters
- Reproducibility — same YAML produces different behavior over time.
- Supply-chain surface — a malicious or accidental commit to
actions/checkout's master branch propagates to every run immediately. - Breaking changes — when
actions/checkout@v5ships,@masterconsumers get the breakage at the next run with no warning. - GitHub's own guidance explicitly recommends pinning to a major version tag or a SHA. Major-version tags (
@v4) still receive patch/security updates automatically.
Cross-repo alignment
- RERUM v1 (
CenterForDigitalHumanities/rerum_server_nodejs) already uses@v4across all CI/CD workflows. - TPEN-services has the same drift — tracked in CenterForDigitalHumanities/TPEN-services#525.
- TinyPEN has the same drift — tracked in CenterForDigitalHumanities/TinyPen#50.
Proposed fix
Normalize the two CD workflows to:
actions/checkout@v4actions/setup-node@v4actions/cache@v4
Small, contained sweep; no behavior changes expected (these are the same versions the existing tests.yaml and shared_openapi_sync.yaml already run on).
Acceptance criteria
- No
@masterreferences remain in.github/workflows/. - All
actions/checkout,actions/setup-node,actions/cachereferences in CD workflows pin to@v4. - CI passes on the sweep PR.
Out of scope
- Pinning to commit SHAs — first-party
actions/*major-version tags are sufficient. - TPEN-services and TinyPEN cleanups — separate issues.
- Dominant language
- JavaScript
- Stars
- 1
- Forks
- 3
- Avg merge
- 12h 6m
- Merged PRs (30d)
- 2
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from CenterForDigitalHumanities/TinyNode
-
dependencies enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
-
bug
Difficulty 4/5 3-5 days Newbie friendliness 48/100
-
copilot
Difficulty 4/5 3-5 days Newbie friendliness 35/100
-
copilot
Difficulty 5/5 Over a week Newbie friendliness 35/100
All issues in CenterForDigitalHumanities/TinyNode
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
HarperFast/skills#96 ·
-
[Block] Latest Posts [Type] Bug
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Automattic/studio#4908 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
sugarlabs/musicblocks#8847 ·