Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 31 additions & 4 deletions .github/workflows/create-release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -188,10 +188,37 @@ jobs:
grep -qE "version[[:space:]]*=[[:space:]]*\"$version\"" $file
- name: Get Changelog Entry
id: changelog_reader
uses: mindsers/changelog-reader-action@32aa5b4c155d76c94e4ec883a223c947b2f02656 # v2.2.3
with:
version: ${{ needs.gather_facts.outputs.version }}
path: ./CHANGELOG.md
env:
VERSION: ${{ needs.gather_facts.outputs.version }}
run: |
set -euo pipefail
entry=$(awk -v ver="$VERSION" '
/^## \[/ {
if (found) exit
if (index($0, "[" ver "]")) { found = 1; next }
}
found {
if ($0 ~ /^\[[^]]+\]:[ \t]*https?:\/\//) next
if (!started && $0 ~ /^[[:space:]]*$/) next
started = 1
buf[++n] = $0
}
END {
while (n > 0 && buf[n] ~ /^[[:space:]]*$/) n--
for (i = 1; i <= n; i++) print buf[i]
}
' ./CHANGELOG.md)

if [ -z "$(printf %s "$entry" | tr -d '[:space:]')" ]; then
echo "::error::No changelog entry found for version $VERSION in ./CHANGELOG.md"
exit 1
fi

{
echo "changes<<__GHA_EOF__"
printf '%s\n' "$entry"
echo "__GHA_EOF__"
} >> "$GITHUB_OUTPUT"
- name: Set up git identity
run: |
git config --local user.email "dev@giantswarm.io"
Expand Down
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
however this project does not use Semantic Versioning and there are no releases.
Instead this file uses a date-based structure.

## 2026-05-19

### Changed

- Replace `mindsers/changelog-reader-action` with an inline `awk` extractor in the `create-release` workflow. The upstream action is unmaintained and still runs on Node 20, which is being deprecated by GitHub Actions on 2026-06-02 (see [giantswarm/giantswarm#36091](https://github.com/giantswarm/giantswarm/issues/36091)). Inline shell has no Node runtime, so the workflow is no longer exposed to future Node-deprecation cycles. The replacement was validated byte-for-byte against 128 historical release bodies produced by the action across 100 consumer repos.

## 2026-05-12

### Added
Expand Down