fix(create-release): replace mindsers/changelog-reader-action with inline awk - #173
Merged
Merged
Conversation
…line awk The upstream action is unmaintained (no release since March 2024) and still runs on Node 20, which GitHub Actions is deprecating on 2026-06-02. Inline shell has no Node runtime, so the workflow stops being exposed to future Node-deprecation cycles. The awk extractor was validated byte-for-byte against 128 historical release bodies produced by the action across 100 consumer repos. Refs: giantswarm/giantswarm#36091
ljakimczuk
approved these changes
May 19, 2026
This was referenced May 19, 2026
Merged
Merged
Merged
Merged
Merged
Closed
Merged
Merged
fix(workflows): regenerate via devctl to drop Node-20 mindsers action
giantswarm/resource-police#189
Closed
This was referenced May 19, 2026
Merged
lyind
pushed a commit
to giantswarm/birthday-painter
that referenced
this pull request
May 19, 2026
…#3) Regenerates .github/workflows/zz_generated.*.yaml via devctl v7.40.7 gen workflows. The previous self-contained Create Release workflow is replaced with a thin wrapper invoking the centralized reusable workflow at giantswarm/github-workflows, which no longer uses mindsers/changelog-reader-action (see giantswarm/github-workflows#173). This unblocks the June 2 2026 Node 20 deprecation deadline: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ Refs: giantswarm/giantswarm#36091
lyind
pushed a commit
to giantswarm/personio-go
that referenced
this pull request
May 19, 2026
…#115) Regenerates .github/workflows/zz_generated.*.yaml via devctl v7.40.7 gen workflows. The previous self-contained Create Release workflow is replaced with a thin wrapper invoking the centralized reusable workflow at giantswarm/github-workflows, which no longer uses mindsers/changelog-reader-action (see giantswarm/github-workflows#173). This unblocks the June 2 2026 Node 20 deprecation deadline: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ Refs: giantswarm/giantswarm#36091
QuentinBisson
pushed a commit
to giantswarm/luigi
that referenced
this pull request
May 20, 2026
…#52) * fix(workflows): regenerate via devctl to drop Node-20 mindsers action Regenerates .github/workflows/zz_generated.*.yaml via devctl v7.40.7 gen workflows. The previous self-contained Create Release workflow is replaced with a thin wrapper invoking the centralized reusable workflow at giantswarm/github-workflows, which no longer uses mindsers/changelog-reader-action (see giantswarm/github-workflows#173). This unblocks the June 2 2026 Node 20 deprecation deadline: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ Refs: giantswarm/giantswarm#36091 * chore: add CHANGELOG entry
weatherhog
added a commit
to giantswarm/silence-operator
that referenced
this pull request
May 20, 2026
…#676) * fix(workflows): regenerate via devctl to drop Node-20 mindsers action Regenerates .github/workflows/zz_generated.*.yaml via devctl v7.40.7 gen workflows. The previous self-contained Create Release workflow is replaced with a thin wrapper invoking the centralized reusable workflow at giantswarm/github-workflows, which no longer uses mindsers/changelog-reader-action (see giantswarm/github-workflows#173). This unblocks the June 2 2026 Node 20 deprecation deadline: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ Refs: giantswarm/giantswarm#36091 * chore: add CHANGELOG entry
weatherhog
added a commit
to giantswarm/operatorkit
that referenced
this pull request
May 20, 2026
…#814) * fix(workflows): regenerate via devctl to drop Node-20 mindsers action Regenerates .github/workflows/zz_generated.*.yaml via devctl v7.40.7 gen workflows. The previous self-contained Create Release workflow is replaced with a thin wrapper invoking the centralized reusable workflow at giantswarm/github-workflows, which no longer uses mindsers/changelog-reader-action (see giantswarm/github-workflows#173). This unblocks the June 2 2026 Node 20 deprecation deadline: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ Refs: giantswarm/giantswarm#36091 * chore: add CHANGELOG entry
weatherhog
added a commit
to giantswarm/ailefroide-app
that referenced
this pull request
May 20, 2026
…#47) * fix(workflows): regenerate via devctl to drop Node-20 mindsers action Regenerates .github/workflows/zz_generated.*.yaml via devctl v7.40.7 gen workflows. The previous self-contained Create Release workflow is replaced with a thin wrapper invoking the centralized reusable workflow at giantswarm/github-workflows, which no longer uses mindsers/changelog-reader-action (see giantswarm/github-workflows#173). This unblocks the June 2 2026 Node 20 deprecation deadline: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ Refs: giantswarm/giantswarm#36091 * chore: add CHANGELOG entry
weatherhog
added a commit
to giantswarm/kueue-app
that referenced
this pull request
May 20, 2026
…#26) * fix(workflows): regenerate via devctl to drop Node-20 mindsers action Regenerates .github/workflows/zz_generated.*.yaml via devctl v7.40.7 gen workflows. The previous self-contained Create Release workflow is replaced with a thin wrapper invoking the centralized reusable workflow at giantswarm/github-workflows, which no longer uses mindsers/changelog-reader-action (see giantswarm/github-workflows#173). This unblocks the June 2 2026 Node 20 deprecation deadline: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ Refs: giantswarm/giantswarm#36091 * chore: add CHANGELOG entry
weatherhog
added a commit
to giantswarm/n8n-app
that referenced
this pull request
May 20, 2026
…#63) * fix(workflows): regenerate via devctl to drop Node-20 mindsers action Regenerates .github/workflows/zz_generated.*.yaml via devctl v7.40.7 gen workflows. The previous self-contained Create Release workflow is replaced with a thin wrapper invoking the centralized reusable workflow at giantswarm/github-workflows, which no longer uses mindsers/changelog-reader-action (see giantswarm/github-workflows#173). This unblocks the June 2 2026 Node 20 deprecation deadline: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ Refs: giantswarm/giantswarm#36091 * chore: add CHANGELOG entry
paurosello
pushed a commit
to giantswarm/tunnelport
that referenced
this pull request
May 21, 2026
…#25) * fix(workflows): regenerate via devctl to drop Node-20 mindsers action Regenerates .github/workflows/zz_generated.*.yaml via devctl v7.40.7 gen workflows. The previous self-contained Create Release workflow is replaced with a thin wrapper invoking the centralized reusable workflow at giantswarm/github-workflows, which no longer uses mindsers/changelog-reader-action (see giantswarm/github-workflows#173). This unblocks the June 2 2026 Node 20 deprecation deadline: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ Refs: giantswarm/giantswarm#36091 * chore: add CHANGELOG entry
stone-z
pushed a commit
to giantswarm/jiralert-app
that referenced
this pull request
Jun 2, 2026
…#69) * fix(workflows): regenerate via devctl to drop Node-20 mindsers action Regenerates .github/workflows/zz_generated.*.yaml via devctl v7.40.7 gen workflows. The previous self-contained Create Release workflow is replaced with a thin wrapper invoking the centralized reusable workflow at giantswarm/github-workflows, which no longer uses mindsers/changelog-reader-action (see giantswarm/github-workflows#173). This unblocks the June 2 2026 Node 20 deprecation deadline: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ Refs: giantswarm/giantswarm#36091 * chore: add CHANGELOG entry
weatherhog
added a commit
to giantswarm/pytest-helm-charts
that referenced
this pull request
Aug 13, 2026
Regenerates .github/workflows/zz_generated.*.yaml via devctl v7.40.7 gen workflows. The previous self-contained Create Release workflow is replaced with a thin wrapper invoking the centralized reusable workflow at giantswarm/github-workflows, which no longer uses mindsers/changelog-reader-action (see giantswarm/github-workflows#173). This unblocks the June 2 2026 Node 20 deprecation deadline: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ Refs: giantswarm/giantswarm#36091
weatherhog
added a commit
to giantswarm/to
that referenced
this pull request
Aug 13, 2026
…ndsers action (#11) * fix(workflows): regenerate via devctl to drop Node-20 mindsers action Regenerates .github/workflows/zz_generated.*.yaml via devctl v7.40.7 gen workflows. The previous self-contained Create Release workflow is replaced with a thin wrapper invoking the centralized reusable workflow at giantswarm/github-workflows, which no longer uses mindsers/changelog-reader-action (see giantswarm/github-workflows#173). This unblocks the June 2 2026 Node 20 deprecation deadline: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ Refs: giantswarm/giantswarm#36091 * fix(circleci): update to v2.1 with explicit machine image (#12) Bump config to version 2.1 and pin the machine executor to ubuntu-2404:current. Without an explicit image, CircleCI uses its deprecated default machine image whose blobless-clone support causes the checkout step to fail silently (job 431). Also converts the legacy `deploy` step (removed in v2.1) to a plain `run` step with the same branch guard. AI-Generated: true Co-authored-by: circleci-app[bot] <127350680+circleci-app[bot]@users.noreply.github.com> * fix(ci): replace hand-rolled CircleCI job with architect orb The build job dated from 2019 and fetched the architect v1.0.0 binary from the GitHub API using $RELEASE_TOKEN, which is no longer set on the project. The API returned 401, the command substitution came back empty and the step died with "wget: missing URL". Because `curl -sS` has no -f and there is no pipefail, the auth error never surfaced. Replace it with architect/go-test from the orb, matching giantswarm/app. The `architect deploy` step is dropped: it was guarded on CIRCLE_BRANCH == master while the default branch is main, so it had been dead for years. Supporting changes needed to make go-test pass: - Add go.mod. The repo was never a module, which blocked go-test and broke `go list -m` in Makefile.gen.go.mk. The go directive is 1.24.0, below every consumer, so no toolchain bump is forced. Existing consumers are unaffected since v0.4.2 is immutable. - Add to_test.go, covering every exported function (100% of statements) using only the stdlib, so the module stays dependency-free. - Add .nancy-ignore, which go-test passes to nancy via --exclude-vulnerability-file. Only .nancy-ignore.generated existed. - Add CHANGELOG.md, expected by the create-release workflows, backfilled from the tag history. - Add renovate.json5 with the shared Giant Swarm presets. - Restore the CI badge lost during the 2024 deprecation churn. Signed-off-by: weatherhog <lucas@giantswarm.io> --------- Signed-off-by: weatherhog <lucas@giantswarm.io> Co-authored-by: circleci-app[bot] <127350680+circleci-app[bot]@users.noreply.github.com>
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
Replaces
mindsers/changelog-reader-action@v2.2.3in thecreate-releasereusable workflow with an inlineawkextractor.The action is unmaintained (no release since March 2024) and still runs on Node 20, which GitHub Actions is deprecating on 2026-06-02. Inline shell has no Node runtime, so the workflow stops being exposed to future Node-deprecation cycles.
Refs: giantswarm/giantswarm#36091
Why inline awk instead of forking the action
ncipollo/release-action, was already bumped to v1.21.0 (Node 24) by Renovate in Update ncipollo/release-action action to v1.21.0 #138 — so this PR closes the remaining work for #36091.Validation
Tested the new awk extractor against the actual GitHub Release bodies that the existing workflow produced for every release published after 2026-02-06 (the date this reusable workflow was introduced) across 100 repos that consume it — 178 releases in total.
After filtering out 35 releases from 4 repos (
kserve,vllm,mcp-debug,mcp-oauth) that use a different release flow with GitHub-auto-generated release notes (i.e. weren't produced bymindsers/changelog-reader-actionat all), the result is:(One visible per-line trailing-space difference in
flux-app v1.9.0is the result of GitHub's API normalizing trailing whitespace server-side when storing release bodies — the stored body is identical either way; the upstream action wouldn't strip it either.)The awk handles three Keep-a-Changelog edge cases that the upstream action also handled:
##heading (section boundary).[X]: https://...) — matters only for first releases of a repo, where the link block sits glued to the section..trim()does the same).If the requested version isn't found in the file, the step fails fast with
::error::No changelog entry found for version ..., preserving the action's "fail the build on missing entry" behavior.Test plan
python3 -c 'import yaml; yaml.safe_load(open(...))').giantswarm/debugorgiantswarm/to) after merge, and visually comparing the resulting Release body to the prior release.