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@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 with: ref: ${{ env.CHECKOUT_REF }} - name: Accept all SDK licenses shell: bash run: printf 'y\ny\ny\ny\ny\ny\n' | $ANDROID_HOME/tools/bin/sdkmanager --licenses - name: Get build-tools directory id: build-tools-path shell: bash run: echo "dir=${ANDROID_HOME}/build-tools/34.0.0-rc3" >> "${GITHUB_OUTPUT}" - name: Cache build-tools uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3 with: path: ${{ steps.build-tools-path.outputs.dir }} key: ${{ runner.os }}-34.0.0-rc3 - name: Set up JDK uses: actions/setup-java@5ffc13f4174014e2d4d4572b3d74c3fa61aeb2c2 # v3.11.0 with: distribution: temurin java-version: 18 - name: Update changelog uses: thomaseizinger/keep-a-changelog-new-release@5bc232893483441c5d6cd6c9dcb1e48abf9a2bae # 1.3.0 with: version: ${{ github.event.milestone.title }} - name: Setup Gradle caching uses: gradle/gradle-build-action@749f47bda3e44aa060e82d7b3ef7e40d953bd629 # v2.4.2 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@284f54f989303d2699d373481a0cfa13ad5a6666 # v5.0.1 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 }}