Skip to content

Release

Release #5

Workflow file for this run

name: Release
on: workflow_dispatch
jobs:
release:
name: Release
runs-on: ubuntu-latest
steps:
- name: Verify prerequisites
run: |
if [[ $GITHUB_REF_NAME != release/* ]]; then
echo This workflow should only be run against release branches
exit 1
fi
- uses: actions/create-github-app-token@v2
id: app-token
with:
app-id: ${{ vars.APP_ID }}
private-key: ${{ secrets.PRIVATE_KEY }}
- name: Get GitHub App User ID and set up git config
id: get-user-id
run: echo "user-id=$(gh api "/users/${{ steps.app-token.outputs.app-slug }}[bot]" --jq .id)" >> "$GITHUB_OUTPUT"
env:
GH_TOKEN: ${{ steps.app-token.outputs.token }}
- run: |
git config --global user.name '${{ steps.app-token.outputs.app-slug }}[bot]'
git config --global user.email '${{ steps.get-user-id.outputs.user-id }}+${{ steps.app-token.outputs.app-slug }}[bot]@users.noreply.github.com>'
- uses: actions/checkout@v6
- name: Set up JDK 17
uses: actions/setup-java@v5
with:
java-version: '17'
distribution: 'temurin'
- name: Release to the Gradle plugin portal
run: ./gradlew publishPlugins -Prelease=true
env:
GRADLE_PUBLISH_KEY: ${{ secrets.GRADLE_PUBLISH_KEY }}
GRADLE_PUBLISH_SECRET: ${{ secrets.GRADLE_PUBLISH_SECRET }}
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
GPG_PASSWORD: ${{ secrets.GPG_PASSWORD }}
post_release:
name: Post release
runs-on: ubuntu-latest
needs:
- release
permissions:
contents: write
pull-requests: write
steps:
- uses: actions/create-github-app-token@v2
id: app-token
with:
app-id: ${{ vars.APP_ID }}
private-key: ${{ secrets.PRIVATE_KEY }}
- name: Get GitHub App User ID and set up git config
id: get-user-id
run: echo "user-id=$(gh api "/users/${{ steps.app-token.outputs.app-slug }}[bot]" --jq .id)" >> "$GITHUB_OUTPUT"
env:
GH_TOKEN: ${{ steps.app-token.outputs.token }}
- run: |
git config --global user.name '${{ steps.app-token.outputs.app-slug }}[bot]'
git config --global user.email '${{ steps.get-user-id.outputs.user-id }}+${{ steps.app-token.outputs.app-slug }}[bot]@users.noreply.github.com>'
- uses: actions/checkout@v6
- name: Set up JDK 17
uses: actions/setup-java@v5
with:
java-version: '17'
distribution: 'temurin'
- name: Creating a GH release
id: variables
env:
GH_TOKEN: ${{ steps.app-token.outputs.token }}
run: |
version=$(cat gradle.properties | grep -Po "(?<=version=)\d+\.\d+\.\d+")
tag="v$version"
git tag $tag
git push origin tag $tag
gh release create --target $GITHUB_REF_NAME \
--title "$version" \
$tag
- name: Bump version
run: |
./gradlew versionBump
git commit -a -m "Bumping version"
git push
- name: Create PR to main
env:
GH_TOKEN: ${{ steps.app-token.outputs.token }}
run: |
message="Prepare for the next release"
gh pr create --title "$message" \
--body "$message." \
--base main