Skip to content

Commit 2bc9717

Browse files
authored
ci: check newly-added CHANGELOGs in CI (#2364)
1 parent a7db481 commit 2bc9717

File tree

2 files changed

+50
-0
lines changed

2 files changed

+50
-0
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: 'Check new CHANGELOG'
2+
description: 'Check new CHANGELOG kind and PR number'
3+
4+
runs:
5+
using: "composite"
6+
steps:
7+
- name: Get newly added CHANGELOGs
8+
id: new-changelogs
9+
uses: tj-actions/changed-files@v44
10+
with:
11+
# Only checek the files under the `changelog` directory
12+
files: changelog/**
13+
14+
- name: Check them
15+
shell: bash
16+
if: steps.new-changelogs.outputs.added_files_count != 0
17+
env:
18+
NEW_CHANGELOGS: ${{ steps.new-changelogs.outputs.added_files }}
19+
PR_NUMBER: ${{ github.event.number }}
20+
run: |
21+
for cl in ${NEW_CHANGELOGS}; do
22+
# parse it
23+
IFS='.' read id kind file_extension <<< "${cl}"
24+
25+
# Check the kind field
26+
if [ "$kind" != "added" ] && [ "$kind" != "changed" ] && [ "$kind" != "fixed" ] && [ "$kind" != "removed" ]; then
27+
echo "Invalid CHANGELOG kind [${kind}] from [${cl}], available options are [added, changed, fixed, removed]";
28+
exit 1;
29+
fi
30+
31+
# Check the file extension
32+
if [ "$file_extension" != "md" ]; then
33+
echo "Invalid file extension [${file_extension}] from [${cl}], it should be [md]";
34+
exit 1;
35+
fi
36+
37+
# Check PR number
38+
if [ "$id" != "$PR_NUMBER" ]; then
39+
echo "Mismatched PR number [${id}] from [${cl}], it should be ${PR_NUMBER}";
40+
exit 1;
41+
fi
42+
done

.github/workflows/ci.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,14 @@ env:
1616
MSRV: 1.69.0
1717

1818
jobs:
19+
check_new_changelog:
20+
runs-on: ubuntu-20.04
21+
steps:
22+
- name: checkout
23+
uses: actions/checkout@v4
24+
25+
- name: check new CHANGELOG
26+
uses: ./.github/actions/check_new_changelog
1927

2028
macos:
2129
runs-on: macos-13

0 commit comments

Comments
 (0)