diff --git a/.github/workflows/gen-changelog.yml b/.github/workflows/gen-changelog.yml new file mode 100644 index 0000000..a30e01c --- /dev/null +++ b/.github/workflows/gen-changelog.yml @@ -0,0 +1,39 @@ +name: Update CHANGELOG.md weekly +on: + workflow_dispatch: + schedule: + - cron: "0 0 * * 0" + +jobs: + changelog: + name: Generate changelog + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Generate a changelog + uses: orhun/git-cliff-action@v3 + with: + config: cliff.toml + args: --verbose + env: + OUTPUT: CHANGELOG.md + GITHUB_REPO: ${{ github.repository }} + GITHUB_BRANCH: ${{ github.ref_name }} + + - name: Prepare commit + run: | + git config user.name 'github-actions[bot]' + git config user.email 'github-actions[bot]@users.noreply.github.com' + set +e + git add CHANGELOG.md + git commit -m "ci(changelog): Update changelog" + + - name: Push commit + # if there is nothing to commit, `git commit` returns 1 + if: success() + run: | + git push https://${{ secrets.GITHUB_TOKEN }}@github.com/${GITHUB_REPOSITORY}.git ${GITHUB_BRANCH} diff --git a/cliff.toml b/cliff.toml index 29d6099..81fe203 100644 --- a/cliff.toml +++ b/cliff.toml @@ -55,6 +55,9 @@ filter_unconventional = true split_commits = false # regex for parsing and grouping commits commit_parsers = [ + { message = "^chore", skip = true }, + { message = "^ci", skip = true }, + { message = "^test", skip = true }, { message = "^.*: add", group = "Added" }, { message = "^.*: create", group = "Added" }, { message = "^.*: support", group = "Added" },