Skip to content

Commit 36ae31c

Browse files
committed
feat(ci): automatiza geração do CHANGELOG com git-cliff
Implementa automação completa do CHANGELOG.md através de workflows do GitHub Actions. Agora, a cada merge na branch main, o CHANGELOG é atualizado automaticamente na seção Unreleased. Para criar releases, basta executar o workflow que detecta a próxima versão e gera um PR com todas as mudanças organizadas. Remove a necessidade de edição manual do CHANGELOG pelos contribuidores, que agora apenas precisam seguir o padrão de Conventional Commits nas mensagens de commit. A documentação foi atualizada para refletir o novo processo automatizado.
1 parent f00812b commit 36ae31c

File tree

6 files changed

+381
-494
lines changed

6 files changed

+381
-494
lines changed
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
name: Update Changelog
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
permissions:
9+
contents: write
10+
11+
jobs:
12+
update-changelog:
13+
name: Update Unreleased section
14+
runs-on: ubuntu-latest
15+
timeout-minutes: 10
16+
steps:
17+
- name: Generate GitHub App Token
18+
id: generate-token
19+
uses: actions/create-github-app-token@v2
20+
with:
21+
app-id: ${{ secrets.APP_CHANGELOG_ID }}
22+
private-key: ${{ secrets.APP_CHANGELOG_PRIVATE_KEY }}
23+
24+
- name: Checkout repository
25+
uses: actions/checkout@v5
26+
with:
27+
fetch-depth: 0
28+
token: ${{ steps.generate-token.outputs.token }}
29+
30+
- name: Generate changelog for Unreleased
31+
uses: orhun/git-cliff-action@v4
32+
with:
33+
config: pyproject.toml
34+
args: --verbose --github-token ${{ secrets.GITHUB_TOKEN }}
35+
env:
36+
OUTPUT: CHANGELOG.md
37+
GITHUB_REPO: ${{ github.repository }}
38+
39+
- name: Check for changes
40+
id: check-changes
41+
run: |
42+
if git diff --quiet CHANGELOG.md; then
43+
echo "has_changes=false" >> $GITHUB_OUTPUT
44+
else
45+
echo "has_changes=true" >> $GITHUB_OUTPUT
46+
fi
47+
48+
- name: Commit and push changes
49+
if: steps.check-changes.outputs.has_changes == 'true'
50+
run: |
51+
git config user.name "github-actions[bot]"
52+
git config user.email "github-actions[bot]@users.noreply.github.com"
53+
git add CHANGELOG.md
54+
git commit -m "docs: update CHANGELOG.md [skip ci]"
55+
git push

0 commit comments

Comments
 (0)