Skip to content

build: add deprecated section to release notes #94

build: add deprecated section to release notes

build: add deprecated section to release notes #94

Workflow file for this run

update-release-notes:

Check failure on line 1 in .github/workflows/maven-central.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/maven-central.yml

Invalid workflow file

(Line: 1, Col: 1): Unexpected value 'update-release-notes', (Line: 1, Col: 1): Required property is missing: jobs
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