Skip to content

Create Gradle Release #4

Create Gradle Release

Create Gradle Release #4

name: Create Gradle Release
on:
workflow_dispatch:
inputs:
releaseVersion:
description: "Release Version (e.g., 1.5.0):"
required: true
developmentVersion:
description: "Next Development Version (e.g., 1.6.0-SNAPSHOT):"
required: true
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Configure Git User
run: |
git config user.email "${{ github.actor }}@users.noreply.github.com"
git config user.name "${{ github.actor }}"
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Update version to release version
run: |
sed -i 's/^version = ".*"/version = "${{ github.event.inputs.releaseVersion }}"/' build.gradle.kts
git add build.gradle.kts
git commit -m "[release] Prepare release ${{ github.event.inputs.releaseVersion }}"
- name: Create release tag
run: |
git tag -a "v${{ github.event.inputs.releaseVersion }}" -m "Release ${{ github.event.inputs.releaseVersion }}"
- name: Update version to next development version
run: |
sed -i 's/^version = ".*"/version = "${{ github.event.inputs.developmentVersion }}"/' build.gradle.kts
git add build.gradle.kts
git commit -m "[release] Prepare for next development iteration ${{ github.event.inputs.developmentVersion }}"
- name: Push changes to release branch
run: |
git push origin HEAD:release/${{ github.event.inputs.releaseVersion }}
env:
GITHUB_TOKEN: ${{ github.token }}
- name: Create Pull Request
id: cpr
uses: peter-evans/create-pull-request@v5
with:
token: ${{ github.token }}
branch: release/${{ github.event.inputs.releaseVersion }}
base: main
title: 'Release ${{ github.event.inputs.releaseVersion }}'
body: |
## Release ${{ github.event.inputs.releaseVersion }}
This PR contains:
- Version bump to ${{ github.event.inputs.releaseVersion }}
- Version bump to next development version ${{ github.event.inputs.developmentVersion }}
- Release tag v${{ github.event.inputs.releaseVersion }}
After merging, the release workflow will be triggered automatically.
labels: release
- name: Enable Pull Request Automerge
if: steps.cpr.outputs.pull-request-number != ''
run: gh pr merge --merge --auto --delete-branch "${{ steps.cpr.outputs.pull-request-number }}"
env:
GH_TOKEN: ${{ github.token }}
- name: Push Release Tag
run: git push origin "v${{ github.event.inputs.releaseVersion }}"
env:
GITHUB_TOKEN: ${{ github.token }}