Skip to content

Modernize GitHub Actions workflows: Node 24 majors + pin floating versions (#90)#97

Merged
devrimcavusoglu merged 1 commit into
mainfrom
chore/actions-node24-pins
Jun 11, 2026
Merged

Modernize GitHub Actions workflows: Node 24 majors + pin floating versions (#90)#97
devrimcavusoglu merged 1 commit into
mainfrom
chore/actions-node24-pins

Conversation

@devrimcavusoglu

Copy link
Copy Markdown
Owner

Closes #90.

Summary

Bumps every action in the four workflow files to its latest major (all run on Node 24) and pins the two floating version: latest tool references. Node 20 actions have been forced to Node 24 by default since June 2, 2026 (already in effect), and Node 20 is removed from runners on September 16, 2026.

Action Before After
actions/checkout v4 v6
actions/setup-go v5 v6
actions/setup-node v4 v6
golangci/golangci-lint-action v7 v9
goreleaser/goreleaser-action v6 v7
actions/configure-pages v4 v6
actions/upload-pages-artifact v3 v5
actions/deploy-pages v4 v5

The pages actions in docs-deploy.yml weren't in the issue's table but fall under the "all actions in the four workflow files" acceptance criterion.

Pins (was version: latest on both):

  • golangci-lint → v2.12.2 (action v8+ requires golangci-lint ≥ v2.1.0; repo's .golangci.yml is already v2)
  • goreleaser → v2.16.0 (matches the version: 2 config schema in .goreleaser.yaml)

Breaking changes reviewed per release notes

  • checkout v6 persists credentials to a separate file — no workflow here pushes via git credentials (release uses GITHUB_TOKEN env into goreleaser).
  • setup-node v5/v6 changed automatic package-manager caching — both docs workflows set cache: npm explicitly, unaffected.
  • configure-pages v5 breaking change only affects static_site_generator: next; docs site is VitePress.
  • upload-pages-artifact v4 stops including dotfiles in the artifact — the VitePress dist ships no load-bearing dotfiles, and deploy-pages doesn't run Jekyll so no .nojekyll is needed.
  • All bumped majors require runner ≥ v2.327.1 — GitHub-hosted runners satisfy this.

Acceptance criteria from #90

  • All actions in the four workflow files run on Node 24
  • No version: latest anywhere — both tools pinned to explicit releases
  • CI (test matrix + lint + docs checks) green — see checks on this PR
  • No deprecation warnings on a fresh run — verify in this PR's run annotations

Test plan

  • grep confirms no version: latest and no pre-Node-24 action majors remain
  • CI on this PR: test (ubuntu/macos/windows), lint, docs-pr-check all green
  • Release workflow path validated on the next tag push (not exercisable from a PR)

🤖 Generated with Claude Code

Bump all actions across the four workflow files to their latest majors,
which run on Node 24 (Node 20 actions are deprecated; forced to Node 24
since June 2, 2026, removed from runners September 16, 2026):

- actions/checkout v4 -> v6, actions/setup-go v5 -> v6
- actions/setup-node v4 -> v6 (explicit `cache: npm` unaffected by the
  v5/v6 automatic-caching changes)
- golangci/golangci-lint-action v7 -> v9
- goreleaser/goreleaser-action v6 -> v7
- actions/configure-pages v4 -> v6 (v5 breaking change only affects
  `static_site_generator: next`, not used)
- actions/upload-pages-artifact v3 -> v5 (v4 stops including dotfiles;
  the VitePress dist has none that matter, and deploy-pages does not
  run Jekyll so no .nojekyll is needed)
- actions/deploy-pages v4 -> v5

Pin the two floating `version: latest` tool references:
- golangci-lint pinned to v2.12.2 (action v8+ requires golangci-lint
  >= v2.1.0)
- goreleaser pinned to v2.16.0 (config schema `version: 2` compatible)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@devrimcavusoglu devrimcavusoglu merged commit a2c5396 into main Jun 11, 2026
5 checks passed
@devrimcavusoglu devrimcavusoglu deleted the chore/actions-node24-pins branch June 11, 2026 22:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Modernize GitHub Actions workflows: Node 24 migration + pin floating versions

1 participant