Skip to content

ci: upgrade the GitHub Actions to their current majors - #167

Merged
jjeff merged 1 commit into
mainfrom
chore/actions-latest
Sep 4, 2026
Merged

jjeff merged 1 commit into
mainfrom
chore/actions-latest

Conversation

@jjeff

@jjeff jjeff commented Aug 30, 2026

Copy link
Copy Markdown
Owner

Every workflow run was annotating:

Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4.

The other actions were behind for the same reason. All of them now sit on their current major.

Action Was Now
actions/checkout v4 v7
actions/setup-node v4 v7
actions/upload-artifact v4 v7
actions/configure-pages v4 v6
actions/upload-pages-artifact v3 v5
actions/deploy-pages v4 v5
actions/dependency-review-action v4 v5

All require Actions Runner 2.327.1 or newer. The GitHub-hosted runners are well past that.

The one non-mechanical change

upload-pages-artifact stopped including hidden files in v4. TypeDoc 0.28 writes a .nojekyll into docs/api under its default githubPages setting, and losing it would put the published API docs through Jekyll. .github/workflows/docs.yml now sets include-hidden-files: true, which restores the v3 behaviour.

Breaking changes checked and ruled out

  • checkout@v7 blocks fork checkouts under pull_request_target and workflow_run. claude.yml triggers on issue_comment, issues, pull_request_review and pull_request_review_comment — none of the affected events.
  • setup-node@v5 caches automatically when package.json declares packageManager, and v6 narrows that to npm only. This package declares no packageManager field, and every step already passes cache: 'npm' explicitly.
  • upload-artifact@v7 adds an opt-in unzipped single-file upload via a new archive input. The default is unchanged.

🤖 Generated with Claude Code

https://claude.ai/code/session_01JktBrqK6LaxcbiiTfDyUC7

🔖 Claude agent: M2:Resortable Release
session id: 4abbd3dd-78c3-4334-a069-05481c380a2f

Every run was annotating "Node.js 20 is deprecated" for actions/checkout@v4
and actions/setup-node@v4, which GitHub forces onto Node 24 anyway. The rest
of the actions were behind by one to three majors for the same reason.

  actions/checkout                  v4 -> v7
  actions/setup-node                v4 -> v7
  actions/upload-artifact           v4 -> v7
  actions/configure-pages           v4 -> v6
  actions/upload-pages-artifact     v3 -> v5
  actions/deploy-pages              v4 -> v5
  actions/dependency-review-action  v4 -> v5

All of these need Actions Runner 2.327.1 or newer, which the GitHub-hosted
runners already exceed.

One change is not mechanical. upload-pages-artifact stopped including hidden
files in v4, and TypeDoc writes a .nojekyll into docs/api under its default
githubPages setting. Losing that file would put the published API docs
through Jekyll. The step now sets include-hidden-files, restoring the v3
behaviour.

Checked and not affected:

- checkout v7 blocks fork checkouts under pull_request_target and
  workflow_run. claude.yml uses neither.
- setup-node v5 caches automatically when package.json declares
  packageManager, and v6 narrows that to npm. This package declares no
  packageManager field and every step already sets cache: npm.
- upload-artifact v7 adds an opt-in unzipped upload; the default is unchanged.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
Claude-Session: https://claude.ai/code/session_01JktBrqK6LaxcbiiTfDyUC7
@github-actions

Copy link
Copy Markdown

Dependency Review

The following issues were found:
  • ✅ 0 vulnerable package(s)
  • ✅ 0 package(s) with incompatible licenses
  • ✅ 0 package(s) with invalid SPDX license definitions
  • ⚠️ 2 package(s) with unknown licenses.
See the Details below.

License Issues

.github/workflows/release.yml

PackageVersionLicenseIssue Type
actions/checkout7.*.*NullUnknown License
actions/setup-node7.*.*NullUnknown License

OpenSSF Scorecard

PackageVersionScoreDetails
actions/actions/checkout 7.*.* 🟢 7
Details
CheckScoreReason
Maintained🟢 1024 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Code-Review🟢 10all changesets reviewed
Binary-Artifacts🟢 10no binaries found in the repo
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Fuzzing⚠️ 0project is not fuzzed
Packaging⚠️ -1packaging workflow not detected
License🟢 10license file detected
Signed-Releases⚠️ -1no releases found
Pinned-Dependencies🟢 3dependency not pinned by hash detected -- score normalized to 3
Security-Policy🟢 9security policy file detected
SAST🟢 10SAST tool is run on all commits
Branch-Protection🟢 6branch protection is not maximal on development and all release branches
actions/actions/setup-node 7.*.* 🟢 6.4
Details
CheckScoreReason
Code-Review🟢 10all changesets reviewed
Maintained🟢 1021 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Binary-Artifacts🟢 9binaries present in source code
Packaging⚠️ -1packaging workflow not detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
Pinned-Dependencies🟢 5dependency not pinned by hash detected -- score normalized to 5
License🟢 10license file detected
Fuzzing⚠️ 0project is not fuzzed
Signed-Releases⚠️ -1no releases found
Security-Policy🟢 9security policy file detected
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
SAST🟢 10SAST tool is run on all commits

Scanned Files

  • .github/workflows/release.yml

@jjeff
jjeff merged commit 4f5e195 into main Sep 4, 2026
16 checks passed
@jjeff
jjeff deleted the chore/actions-latest branch September 4, 2026 00:39
@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

🎉 This PR is included in version 3.0.1 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant