name: Draft new release on: milestone: types: [closed] jobs: draft-new-release: name: Draft a new release runs-on: ubuntu-latest steps: - name: Extract version from milestone shell: bash run: | VERSION="${{ github.event.milestone.title }}" RELEASE_VERSION="${VERSION/v/}" # Transforms 1.13.2 to 1.13 so that we can re-use the same # branch for patch releases. BRANCH_VERSION="${RELEASE_VERSION:$i:-2}" if [[ "${RELEASE_VERSION: -1}" == "0" ]]; then CHECKOUT_REF="develop" else CHECKOUT_REF="release-${BRANCH_VERSION}" fi # Export variables separately so the scripting above is more legible, # and we can actually use them within this block. Changes to $GITHUB_ENV # only affect the next step, not the current one. echo "RELEASE_VERSION=${RELEASE_VERSION}" >> $GITHUB_ENV echo "CHECKOUT_REF=${CHECKOUT_REF}" >> $GITHUB_ENV echo "BRANCH_VERSION=${BRANCH_VERSION}" >> $GITHUB_ENV echo "PR_BASE=release-${BRANCH_VERSION}" >> $GITHUB_ENV echo "PR_HEAD=release-prep" >> $GITHUB_ENV - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 with: ref: ${{ env.CHECKOUT_REF }} - name: Set up JDK uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1 with: distribution: temurin java-version: 20 - name: Update changelog uses: thomaseizinger/keep-a-changelog-new-release@77ac767b2f7f6edf2ee72ab3364ed26667086f96 # 3.0.0 with: version: ${{ github.event.milestone.title }} - name: Setup Gradle caching uses: gradle/actions/setup-gradle@1168cd3d07c1876a65e1724114de42ccbdfa7b78 # v3 with: gradle-home-cache-cleanup: true - name: Initialize git config and commit changes shell: bash run: | # Configure name and email for Actions user git config user.name "GitHub Actions" git config user.email noreply@github.com # It is necessary to create the $PR_BASE branch if it doesn't # already exist because we want to start a PR against it. if [[ "${CHECKOUT_REF}" == "develop" ]]; then git branch -c develop "${PR_BASE}" git push origin "${PR_BASE}" fi # Stage and commit changes to the changelog git add CHANGELOG.md git commit -m "CHANGELOG: bump for ${{ github.event.milestone.title }}" # Increment the version as necessary. If we checked out develop it means # that the version number is already correct, and we only need to drop the # -SNAPSHOT suffix. if [[ "${CHECKOUT_REF}" == "develop" ]]; then ./gradlew --no-daemon clearPreRelease else ./gradlew --no-daemon bumpPatch fi # Commit changes to the versioning git add **/version.properties git commit -m "build: bump version" - name: Create Pull Request uses: peter-evans/create-pull-request@c55203cfde3e5c11a452d352b4393e68b85b4533 # v6.0.3 with: author: GitHub Actions body: This is an automated pull request to bump the changelog for the ${{ github.event.milestone.title }} release. base: ${{ env.PR_BASE }} branch: ${{ env.PR_HEAD }} title: Release v${{ env.RELEASE_VERSION }} token: ${{ secrets.GITHUB_TOKEN }}