Skip to content

jooby 4.1.0

jooby 4.1.0 #91

Workflow file for this run

name: Maven Central
on:
release:
types: [created]
jobs:
release:
name: Release on Sonatype OSS
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: 21
distribution: 'temurin'
cache: maven
- name: Setup gradle.properties
env:
GRADLE_PROPERTIES: ${{ secrets.GRADLE_PROPERTIES }}
shell: bash
run: |
mkdir -p ~/.gradle/
echo "GRADLE_USER_HOME=${HOME}/.gradle" >> $GITHUB_ENV
echo "${GRADLE_PROPERTIES}" > ~/.gradle/gradle.properties
- name: Build
run: mvn clean install -DskipTests -q
- name: Set up Maven Central
uses: actions/setup-java@v4
with:
java-version: 21
distribution: 'temurin'
server-id: central
server-username: CENTRAL_USERNAME
server-password: CENTRAL_TOKEN
gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }}
gpg-passphrase: MAVEN_GPG_PASSPHRASE
- name: Publish to Maven Central
run: mvn -pl '!tests' clean deploy -P bom,central,gradlePlugin
env:
CENTRAL_USERNAME: ${{ secrets.CENTRAL_USERNAME }}
CENTRAL_TOKEN: ${{ secrets.CENTRAL_TOKEN }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
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 NEW features (requires the 'feature' label)
gh issue list \
--repo ${{ github.repository }} \
--search "milestone:\"$VERSION_NUM\" label:feature" \
--limit 100 \
--json title,url \
--jq '.[] | "- [\(.title)](\(.url))"' > new_issues.md
# 2. Fetch OTHER changes (excludes 'feature' and 'dependencies')
gh issue list \
--repo ${{ github.repository }} \
--search "milestone:\"$VERSION_NUM\" -label:feature -label:dependencies" \
--limit 100 \
--json title,url \
--jq '.[] | "- [\(.title)](\(.url))"' > other_issues.md
# 3. Initialize the changelog file
> changelog.md
# 4. Conditionally add "What is new?" only if new_issues.md has content (-s)
if [ -s new_issues.md ]; then
echo "## What is new?" >> changelog.md
cat new_issues.md >> changelog.md
echo "" >> changelog.md
fi
# 5. Build the rest of the changelog ("Changes" is always present)
cat << EOF >> changelog.md
## Changes
$(cat other_issues.md)
- [$CURRENT_TAG](https://github.com/jooby-project/jooby/tree/$CURRENT_TAG)
- [Issues](https://github.com/jooby-project/jooby/milestone/$MILESTONE_ID?closed=1)
- [Changelog](https://github.com/jooby-project/jooby/compare/$PREV_TAG...$CURRENT_TAG)
- [Dependencies](https://github.com/jooby-project/jooby/pulls?q=is%3Apr+label%3Adependencies+is%3Aclosed+milestone%3A$VERSION_NUM)
## Support my work
- [Sponsor](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