Skip to content

Commit eb16177

Browse files
authored
feat: add changelog workflow (#10)
Signed-off-by: Pavel Polyakov <djeredian@gmail.com>
1 parent 0d410ac commit eb16177

1 file changed

Lines changed: 65 additions & 0 deletions

File tree

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
name: Update Changelog
2+
3+
on:
4+
release:
5+
types:
6+
- released
7+
8+
jobs:
9+
update:
10+
name: Update Changelog
11+
runs-on: ubuntu-latest
12+
13+
permissions:
14+
# Give the default GITHUB_TOKEN write permission to commit and push the
15+
# updated CHANGELOG back to the repository.
16+
# https://github.blog/changelog/2023-02-02-github-actions-updating-the-default-github_token-permissions-to-read-only/
17+
contents: write
18+
19+
steps:
20+
- name: Checkout code
21+
uses: actions/checkout@v4
22+
with:
23+
# Fetch entire history of repository to ensure release date can be
24+
# extracted from commit of the given tag.
25+
fetch-depth: 0
26+
# Checkout target branch of this release. Ensures that the CHANGELOG
27+
# is not out of date.
28+
ref: ${{ github.event.release.target_commitish }}
29+
30+
- name: Extract release date from git tag
31+
id: release_date
32+
run: |
33+
echo "date=$(git log -1 --date=short --format=%ad '${{ github.event.release.tag_name }}')" >> $GITHUB_OUTPUT;
34+
35+
- name: Update Changelog
36+
uses: stefanzweifel/changelog-updater-action@v1.10.0
37+
with:
38+
# Pass extracted release date, release notes and version to the Action.
39+
release-date: ${{ steps.release_date.outputs.date }}
40+
release-notes: ${{ github.event.release.body }}
41+
latest-version: ${{ github.event.release.name }}
42+
43+
- name: Generate token
44+
uses: tibdex/github-app-token@v2.1.0
45+
id: generate_token
46+
with:
47+
app_id: ${{ secrets.APP_ID }}
48+
private_key: ${{ secrets.APP_PRIVATE_KEY }}
49+
50+
- name: Create Pull Request
51+
uses: peter-evans/create-pull-request@v6.0.0
52+
with:
53+
author: ${{ github.actor }} <${{ github.actor_id }}+${{ github.actor }}@users.noreply.github.com>
54+
signoff: true
55+
branch: 'changelog/${{ github.event.release.name }}'
56+
commit-message: 'docs(changelog): update changelog'
57+
delete-branch: true
58+
title: 'docs(changelog): update changelog'
59+
token: ${{ steps.generate_token.outputs.token }}
60+
draft: false
61+
labels: |
62+
pull request: documentation
63+
pull request: skip-changelog
64+
body: |
65+
Automated changelog PR for release:${{ github.event.release.name }}

0 commit comments

Comments
 (0)