-
-
Notifications
You must be signed in to change notification settings - Fork 200
118 lines (101 loc) · 4.47 KB
/
maven-central.yml
File metadata and controls
118 lines (101 loc) · 4.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
update-release-notes:
name: Update GitHub Release Notes
needs: release
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Generate and Update Release Notes
continue-on-error: true
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
CURRENT_TAG=${{ github.ref_name }}
VERSION_NUM=${CURRENT_TAG#v}
# Calculate previous tag using version sorting
git fetch --tags --force
PREV_TAG=$(git tag --sort=-v:refname | grep -A 1 "^${CURRENT_TAG}$" | tail -n 1)
# Fetch milestone ID for the link
MILESTONE_ID=$(gh api repos/${{ github.repository }}/milestones -q ".[] | select(.title==\"$VERSION_NUM\") | .number")
# 1. Fetch BREAKING changes (requires the 'break-change' label)
gh issue list \
--repo ${{ github.repository }} \
--search "milestone:\"$VERSION_NUM\" label:break-change" \
--state all \
--limit 100 \
--json title,number \
--jq '.[] | "- \(.title) #\(.number)"' > breaking_issues.md
# 2. Fetch NEW features (requires 'feature', excludes 'break-change')
gh issue list \
--repo ${{ github.repository }} \
--search "milestone:\"$VERSION_NUM\" label:feature -label:break-change" \
--state all \
--limit 100 \
--json title,number \
--jq '.[] | "- \(.title) #\(.number)"' > new_issues.md
# 3. Fetch DEPRECATED changes (requires 'deprecated', excludes 'break-change')
gh issue list \
--repo ${{ github.repository }} \
--search "milestone:\"$VERSION_NUM\" label:deprecated -label:break-change" \
--state all \
--limit 100 \
--json title,number \
--jq '.[] | "- \(.title) #\(.number)"' > deprecated_issues.md
# 4. Fetch OTHER changes (excludes 'feature', 'break-change', 'deprecated', and 'dependencies')
gh issue list \
--repo ${{ github.repository }} \
--search "milestone:\"$VERSION_NUM\" -label:feature -label:break-change -label:deprecated -label:dependencies" \
--state all \
--limit 100 \
--json title,number \
--jq '.[] | "- \(.title) #\(.number)"' > other_issues.md
# 5. Initialize the changelog file
> changelog.md
# 6. Conditionally add "Breaking Changes"
if [ -s breaking_issues.md ]; then
echo "## ⚠️ Breaking Changes" >> changelog.md
echo "" >> changelog.md
cat breaking_issues.md >> changelog.md
echo "" >> changelog.md
fi
# 7. Conditionally add "What's New"
if [ -s new_issues.md ]; then
echo "## 🚀 What's New" >> changelog.md
echo "" >> changelog.md
cat new_issues.md >> changelog.md
echo "" >> changelog.md
fi
# 8. Conditionally add "Other Changes"
if [ -s other_issues.md ]; then
echo "## 🛠️ Changes" >> changelog.md
echo "" >> changelog.md
cat other_issues.md >> changelog.md
echo "" >> changelog.md
fi
# 9. Conditionally add "Deprecated"
if [ -s deprecated_issues.md ]; then
echo "## 🗑️ Deprecated" >> changelog.md
echo "" >> changelog.md
cat deprecated_issues.md >> changelog.md
echo "" >> changelog.md
fi
# 10. Build the rest of the changelog (Links & Sponsors)
# Note: I changed `### 🔗 Links & Resources` to `## 🔗 Links & Resources` to match your other headers.
cat << EOF >> changelog.md
## 🔗 Links & Resources
- [$CURRENT_TAG](https://github.com/jooby-project/jooby/tree/$CURRENT_TAG)
- [Closed Issues](https://github.com/jooby-project/jooby/milestone/$MILESTONE_ID?closed=1)
- [Changelog](https://github.com/jooby-project/jooby/compare/$PREV_TAG...$CURRENT_TAG)
- [Dependency Updates](https://github.com/jooby-project/jooby/pulls?q=is%3Apr+label%3Adependencies+is%3Aclosed+milestone%3A$VERSION_NUM)
## 💖 Support my work
- [Sponsor Jooby](https://github.com/sponsors/jknack)
### 🏆 Sponsors
- [@premium-minds](https://github.com/premium-minds)
- [@agentgt](https://github.com/agentgt)
- [@tipsy](https://github.com/tipsy)
EOF
# Overwrite the existing release notes
gh release edit $CURRENT_TAG --notes-file changelog.md