Create Gradle Release #1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 }} | |