From 9646cccd126d56223462f91aeae1c9120a918f66 Mon Sep 17 00:00:00 2001 From: Philip Niedertscheider Date: Sun, 13 Sep 2026 17:55:37 +0200 Subject: [PATCH] ci(release): Append commit-based changelogs to release notes --- .github/cliff.toml | 18 ++++++++++++++++++ .github/workflows/release.yml | 11 +++++++++++ Brewfile | 1 + 3 files changed, 30 insertions(+) create mode 100644 .github/cliff.toml diff --git a/.github/cliff.toml b/.github/cliff.toml new file mode 100644 index 0000000..14c5245 --- /dev/null +++ b/.github/cliff.toml @@ -0,0 +1,18 @@ +[changelog] +header = "### Changelog\n\n" +body = """ +{% for commit in commits %}\ +- {{ commit.message | split(pat="\n") | first }} (`{{ commit.id | truncate(length=7, end="") }}`) +{% endfor %} +""" +footer = "" +trim = true + +[git] +conventional_commits = false +filter_unconventional = false +filter_commits = false +commit_parsers = [] +# The rolling development tag must not become a changelog boundary. +tag_pattern = '^v[0-9]+\.[0-9]+\.[0-9]+$' +sort_commits = "newest" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 80e5d39..9d08387 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -112,6 +112,15 @@ jobs: sha256sum apple-docs-* > checksums.txt cat checksums.txt + - name: Generate changelog + uses: orhun/git-cliff-action@v4 + with: + version: v2.14.1 + config: .github/cliff.toml + args: --use-branch-tags ${{ needs.prepare.outputs.is_prerelease == 'true' && '--unreleased' || '--current' }} + env: + OUTPUT: dist/changelog.md + - name: Prepare release notes run: | if [ "${{ needs.prepare.outputs.is_prerelease }}" = "true" ]; then @@ -125,6 +134,8 @@ jobs: -e 's/{{BUILD_DATE}}/${{ needs.prepare.outputs.build_date }}/g' \ -e 's|{{REPOSITORY}}|${{ github.repository }}|g' \ "$TEMPLATE" > dist/release-notes.md + printf '\n' >> dist/release-notes.md + cat dist/changelog.md >> dist/release-notes.md cat dist/release-notes.md - name: Delete existing latest release (pre-release only) diff --git a/Brewfile b/Brewfile index c01daa6..ceead06 100644 --- a/Brewfile +++ b/Brewfile @@ -1,4 +1,5 @@ brew "actionlint" brew "dprint" +brew "git-cliff" brew "pre-commit" brew "swiftlint"