From abae13ca378057ef89fc008a8b6dba24a6f40673 Mon Sep 17 00:00:00 2001 From: samitab Date: Sat, 13 Jul 2024 08:34:06 +1000 Subject: [PATCH] [ignore] Testing git-cliff in GitHub actions --- .github/workflows/release_pr.yml | 37 +++++++++++++++ cliff.toml | 78 ++++++++++++++++++++++++++++++++ 2 files changed, 115 insertions(+) create mode 100644 .github/workflows/release_pr.yml create mode 100644 cliff.toml diff --git a/.github/workflows/release_pr.yml b/.github/workflows/release_pr.yml new file mode 100644 index 000000000..283d2aa57 --- /dev/null +++ b/.github/workflows/release_pr.yml @@ -0,0 +1,37 @@ +name: release_pr + +on: + push: + branches: + - release-pr-test + +jobs: + git-cliff: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Unshallow + run: git fetch --prune --unshallow + + - uses: actions/setup-python@v5 + with: + python-version: '3.10' + + - run: pip install git-cliff + + - name: Generate changelog output + run: git cliff --bump --unreleased + + - name: Prepend new changelog entry + run: git cliff --bump --unreleased -p CHANGELOG.md + + - name: Set git config + run: git config user.email "dcn-ecosystem@cisco.com" && git config user.name "dcn-ecosystem" + + - name: Commit + run: git add -u && git status && git commit -m "[ignore] Update Changelog for new release (vTODO)" + + - name: Branch & Push + run: git checkout -b release_pr && git push --force && git clean -f -d \ No newline at end of file diff --git a/cliff.toml b/cliff.toml new file mode 100644 index 000000000..cf5cc49e0 --- /dev/null +++ b/cliff.toml @@ -0,0 +1,78 @@ +# git-cliff ~ 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 = """ +# Terraform Provider ACI - Changelog\n +All 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="%B %d, %Y") }}) +{% else %}\ + ## [unreleased] +{% endif %}\ +{% for group, commits in commits | group_by(attribute="group") %} + {{ group | striptags | trim | upper_first }}: + {% for commit in commits -%} + - {{ commit.message | trim_start_matches(pat="[bugfix]") | trim }} + {% endfor -%} +{% endfor %}\n +""" +# template for the changelog footer +footer = """ + +""" +# remove the leading and trailing s +trim = true +# postprocessors +postprocessors = [ + # { pattern = '', replace = "https://github.com/orhun/git-cliff" }, # replace repository URL +] + +[git] +# parse the commits based on https://www.conventionalcommits.org +conventional_commits = true +# 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}](/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 = "[D|d]eprecat", group = "DEPRECATIONS" }, + { message = "^.bug", group = "BUG FIXES" }, + { message = "^.minor", group = "IMPROVEMENTS" }, + { message = "^.major", group = "IMPROVEMENTS" }, +# { message = ".*", group = "OTHER" }, +] +# 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 = "oldest" +# limit the number of commits included in the changelog. +# limit_commits = 42