Add release notes generated with git-cliff

This commit is contained in:
Tobi Schäfer 2025-03-01 01:02:27 +01:00
parent 808bc48ab9
commit b867cec727
Signed by: tobi
GPG key ID: 91FAE6FE2EBAC4C8
2 changed files with 129 additions and 24 deletions

View file

@ -9,40 +9,56 @@ permissions:
contents: write contents: write
jobs: jobs:
build: release:
runs-on: antville runs-on: antville
env: env:
GH_TOKEN: ${{ secrets.GH_TOKEN }} GH_TOKEN: ${{ secrets.GH_TOKEN }}
LC_TIME: en_US.UTF-8 LC_TIME: en_US.UTF-8
TODAY: $(date +'%d %b %Y') TODAY: $(date +'%-d %b %Y')
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Build with Gradle
run: ./gradlew assembleDist
- name: Create release
uses: actions/forgejo-release@v2
with: with:
direction: upload fetch-depth: 0
url: https://code.host.antville.org
token: ${{ github.token }}
title: ${{ env.TODAY }}
release-dir: build/distributions
release-notes-assistant: true
verbose: true
- name: Create release at GitHub - name: Create release notes
id: create_release_notes
run: | run: |
gh release create "$GITHUB_REF_NAME" \ release_notes=$(npx git-cliff@latest --latest --verbose)
--repo "$GITHUB_REPOSITORY" \ cat >> $GITHUB_OUTPUT << .end-of-output
--title "${{ env.TODAY }}" \ release_notes<<.end
--generate-notes $release_notes
.end
.end-of-output
- name: Upload release assets to GitHub - name: Debug
run: | run: |
gh release upload "$GITHUB_REF_NAME" build/distributions/helma-*.* \ echo "${{ steps.create_release_notes.outputs.release_notes }}"
--repo "$GITHUB_REPOSITORY" \
--clobber # - name: Build with Gradle
# run: ./gradlew assembleDist
# - name: Create release
# uses: actions/forgejo-release@v2
# with:
# direction: upload
# url: https://code.host.antville.org
# token: ${{ github.token }}
# title: ${{ env.TODAY }}
# release-dir: build/distributions
# release-notes: ${{ steps.create_release_notes.outputs.release_notes }}
# verbose: true
# - name: Create release at GitHub
# run: |
# gh release create "$GITHUB_REF_NAME" \
# --repo "$GITHUB_REPOSITORY" \
# --title "${{ env.TODAY }}" \
# --notes "${{ steps.create_release_notes.outputs.release_notes }}"
# - name: Upload release assets to GitHub
# run: |
# gh release upload "$GITHUB_REF_NAME" build/distributions/helma-*.* \
# --repo "$GITHUB_REPOSITORY" \
# --clobber

89
cliff.toml Normal file
View file

@ -0,0 +1,89 @@
# git-cliff ~ default configuration file
# https://git-cliff.org/docs/configuration
#
# Lines starting with "#" are comments.
# Configuration options are organized into tables and keys.
# See documentation for more information on available options.
[changelog]
# template for the changelog footer
header = """
## Changes
<!--
\nAll notable changes to this project will be documented in this file.\n
-->
"""
# template for the changelog body
# https://keats.github.io/tera/docs/#introduction
body = """
<!--{% if version %}\
## {{ version | trim_start_matches(pat="v") }} ({{ timestamp | date(format="%-d %B %Y") }})
{% else %}\
## [unreleased]
{% endif %}-->\
{% for group, commits in commits | filter(attribute="merge_commit") | group_by(attribute="group") %}
### {{ group | striptags | trim | upper_first }}
{% for commit in commits %}
* {% if commit.breaking %}**Breaking:** {% endif %}\
[{{ commit.message | split(pat="\\n") | first | upper_first }}]\
(https://code.host.antville.org/antville/helma/commit/{{ commit.id }})\
{% endfor %}
{% endfor %}\n
"""
# template for the changelog footer
footer = """
<!-- generated by git-cliff -->
"""
# remove the leading and trailing s
trim = true
# postprocessors
postprocessors = [
# { pattern = '<REPO>', replace = "https://github.com/orhun/git-cliff" }, # replace repository URL
]
[git]
# parse the commits based on https://www.conventionalcommits.org
conventional_commits = false
# filter out the commits that are not conventional
filter_unconventional = false
# process each line of a commit as an individual commit
split_commits = false
# regex for preprocessing the commit messages
commit_preprocessors = [
# Replace issue numbers
#{ pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](<REPO>/issues/${2}))"},
# Check spelling of the commit with https://github.com/crate-ci/typos
# If the spelling is incorrect, it will be automatically fixed.
#{ pattern = '.*', replace_command = 'typos --write-changes -' },
]
# regex for parsing and grouping commits
commit_parsers = [
{ message = "^Apply \\d+ suggestion", skip = true },
{ message = "^Lock file maintenance", skip = true },
{ message = "yarn\\.lock", skip = true },
{ message = "^fix", group = "<!-- 0 --># 🐛 Bug Fixes" },
{ message = "^Merge pull request .+ into (main|helma-)", group = "<!-- 9 --> 🔀 Merges" },
#{ message = "^Update dependency .+ to", group = "<!-- 2 -->📦️ Dependency Updates" },
{ field = "author.name", pattern = "renovate", group = "<!-- 2 --> 📦️ Dependency Updates" },
{ message = "^Merge .*(branch|dependency|renovate)", skip = true },
{ message = ".*", group = "<!-- 1 --> Uncategorized" }
]
# protect breaking changes from being skipped due to matching a skipping commit_parser
protect_breaking_commits = false
# filter out the commits that are not matched by commit parsers
filter_commits = false
# regex for matching git tags
# tag_pattern = "v[0-9].*"
# regex for skipping tags
# skip_tags = ""
# regex for ignoring tags
# ignore_tags = ""
# sort the tags topologically
topo_order = false
# sort the commits inside sections by oldest/newest order
sort_commits = "newest"
# limit the number of commits included in the changelog.
# limit_commits = 42