1- name : Generate PR list markdown
1+ name : Generate draft release notes
22
33on :
44 push :
@@ -11,12 +11,12 @@ permissions:
1111 contents : write
1212
1313jobs :
14- pr-list :
14+ release-notes :
1515 runs-on : ubuntu-latest
1616
1717 steps :
1818 - name : Checkout
19- uses : actions/checkout@v4
19+ uses : actions/checkout@v6
2020 with :
2121 fetch-depth : 0
2222
@@ -39,16 +39,58 @@ jobs:
3939
4040 echo "# Pull Requests since release ${{ steps.lasttag.outputs.tag }}" > docs/release-notes.md
4141 echo "" >> docs/release-notes.md
42- echo "| Merge date | Title | PR |" >> docs/release-notes.md
43- echo "| --- | --- | --- |" >> docs/release-notes.md
44-
45- gh pr list \
42+ PRS_JSON=$(gh pr list \
4643 --state merged \
4744 --base develop \
4845 --search "merged:>${{ steps.tagdate.outputs.date }}" \
49- --json number,title,mergedAt,url \
50- --jq 'sort_by(.mergedAt) | reverse | .[] | "| \(.mergedAt | fromdateiso8601 | strflocaltime("%Y-%m-%d %H:%M:%S")) | \(.title | gsub("\\|"; "\\\\|")) | [#\(.number)](\(.url)) |"' \
51- >> docs/release-notes.md
46+ --json number,title,mergedAt,url)
47+
48+ echo "## Changes" >> docs/release-notes.md
49+ CHANGES_ROWS=$(echo "$PRS_JSON" | jq -r '
50+ map(select((.title | startswith("[CI]")) | not))
51+ | map(select(((.title | ascii_downcase | startswith("docs:")) or (.title | ascii_downcase | startswith("ci:"))) | not))
52+ | sort_by(.mergedAt) | reverse | .[]
53+ | "| \(.mergedAt | fromdateiso8601 | strflocaltime("%Y-%m-%d %H:%M:%S")) | \(.title | gsub("\\|"; "\\\\|")) | [#\(.number)](\(.url)) |"
54+ ')
55+ if [ -z "$CHANGES_ROWS" ]; then
56+ echo "No entries" >> docs/release-notes.md
57+ else
58+ echo "| Merge date | Title | PR |" >> docs/release-notes.md
59+ echo "| --- | --- | --- |" >> docs/release-notes.md
60+ echo "$CHANGES_ROWS" >> docs/release-notes.md
61+ fi
62+ echo "" >> docs/release-notes.md
63+
64+ echo "## Documentations" >> docs/release-notes.md
65+ DOCS_ROWS=$(echo "$PRS_JSON" | jq -r '
66+ map(select((.title | startswith("[CI]")) | not))
67+ | map(select(.title | ascii_downcase | startswith("docs:")))
68+ | sort_by(.mergedAt) | reverse | .[]
69+ | "| \(.mergedAt | fromdateiso8601 | strflocaltime("%Y-%m-%d %H:%M:%S")) | \(.title | gsub("\\|"; "\\\\|")) | [#\(.number)](\(.url)) |"
70+ ')
71+ if [ -z "$DOCS_ROWS" ]; then
72+ echo "No entries" >> docs/release-notes.md
73+ else
74+ echo "| Merge date | Title | PR |" >> docs/release-notes.md
75+ echo "| --- | --- | --- |" >> docs/release-notes.md
76+ echo "$DOCS_ROWS" >> docs/release-notes.md
77+ fi
78+ echo "" >> docs/release-notes.md
79+
80+ echo "## Developer" >> docs/release-notes.md
81+ DEV_ROWS=$(echo "$PRS_JSON" | jq -r '
82+ map(select((.title | startswith("[CI]")) | not))
83+ | map(select(.title | ascii_downcase | startswith("ci:")))
84+ | sort_by(.mergedAt) | reverse | .[]
85+ | "| \(.mergedAt | fromdateiso8601 | strflocaltime("%Y-%m-%d %H:%M:%S")) | \(.title | gsub("\\|"; "\\\\|")) | [#\(.number)](\(.url)) |"
86+ ')
87+ if [ -z "$DEV_ROWS" ]; then
88+ echo "No entries" >> docs/release-notes.md
89+ else
90+ echo "| Merge date | Title | PR |" >> docs/release-notes.md
91+ echo "| --- | --- | --- |" >> docs/release-notes.md
92+ echo "$DEV_ROWS" >> docs/release-notes.md
93+ fi
5294
5395 env :
5496 GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
0 commit comments