From 9c61705bbb08f13b7558d2a0bee0be14fe1b9d33 Mon Sep 17 00:00:00 2001 From: Puneet Behl Date: Wed, 13 Dec 2023 20:34:02 +0530 Subject: [PATCH 1/4] Improvements to the Release Workflow --- .github/actions/pre-release/entrypoint.sh | 3 +- .github/workflows/release.yml | 86 ++++++++++++++--------- 2 files changed, 53 insertions(+), 36 deletions(-) diff --git a/.github/actions/pre-release/entrypoint.sh b/.github/actions/pre-release/entrypoint.sh index bd44ba5d3f5..efd44bd2bd2 100755 --- a/.github/actions/pre-release/entrypoint.sh +++ b/.github/actions/pre-release/entrypoint.sh @@ -34,9 +34,8 @@ echo "Pushing release version and recreating v${release_version} tag" git add gradle.properties git add grails-core/src/test/groovy/grails/util/GrailsUtilTests.java git commit -m "[skip ci] Release v${release_version}" -git push origin :refs/tags/v${release_version} git tag -fa v${release_version} -m "Release v${release_version}" -git push origin v${release_version} +git push origin v${release_version} --force echo "Closing again the release after updating the tag" release_url=`cat $GITHUB_EVENT_PATH | jq '.release.url' | sed -e 's/^"\(.*\)"$/\1/g'` diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a65920f99e2..ea37eb19ee4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,44 +4,43 @@ on: types: [published] permissions: {} jobs: - release: + publish: permissions: contents: write # to create release issues: write # to modify milestones - runs-on: ubuntu-latest - strategy: - matrix: - java: ['11'] + outputs: + release_version: ${{ steps.release_version.outputs.value }} + target_branch: ${{ steps.extract_branch.outputs.value }} env: GIT_USER_NAME: puneetbehl GIT_USER_EMAIL: behlp@unityfoundation.io steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v3 with: token: ${{ secrets.GH_TOKEN }} - - uses: gradle/wrapper-validation-action@v1 - name: Set up JDK - uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93 # v4 + uses: actions/setup-java@v3 with: distribution: 'adopt' - java-version: ${{ matrix.java }} + java-version: '11' - name: Extract Target Branch id: extract_branch run: | echo "Determining Target Branch" TARGET_BRANCH=`cat $GITHUB_EVENT_PATH | jq '.release.target_commitish' | sed -e 's/^"\(.*\)"$/\1/g'` echo $TARGET_BRANCH - echo ::set-output name=value::${TARGET_BRANCH} + echo "value=${TARGET_BRANCH}" >> $GITHUB_OUTPUT - name: Set the current release version id: release_version - run: echo "release_version=${GITHUB_REF:11}" >> $GITHUB_OUTPUT + run: echo "value=${GITHUB_REF:11}" >> $GITHUB_OUTPUT - name: Run pre-release uses: ./.github/actions/pre-release with: token: ${{ secrets.GITHUB_TOKEN }} - name: Run Assemble + if: success() id: assemble uses: gradle/gradle-build-action@v2 with: @@ -50,13 +49,28 @@ jobs: GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }} GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY: ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }} + - name: Upload Distribution + if: success() + uses: actions/upload-artifact@v3 + with: + name: grails-${{ steps.release_version.outputs.value }}.zip + path: build/distributions/grails-${{ steps.release_version.outputs.value }}.zip + - name: Upload artifacts to the Github release + if: success() + id: upload_artifact + uses: Roang-zero1/github-upload-release-artifacts-action@master + with: + args: build/distributions/grails-${{ steps.release_version.outputs.value }}.zip + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Generate secring file + if: success() && false env: SECRING_FILE: ${{ secrets.SECRING_FILE }} run: echo $SECRING_FILE | base64 -d > ${{ github.workspace }}/secring.gpg - name: Publish to Sonatype OSSRH id: publish - if: steps.assemble.outcome == 'success' + if: success() && false uses: gradle/gradle-build-action@v2 env: GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }} @@ -71,42 +85,47 @@ jobs: SECRING_FILE: ${{ secrets.SECRING_FILE }} with: arguments: -Psigning.secretKeyRingFile=${{ github.workspace }}/secring.gpg publishToSonatype closeAndReleaseSonatypeStagingRepository - - name: Export Gradle Properties - uses: micronaut-projects/github-actions/export-gradle-properties@master - name: Run post-release - if: steps.publish.outcome == 'success' + if: success() uses: ./.github/actions/post-release with: token: ${{ secrets.GITHUB_TOKEN }} env: SNAPSHOT_SUFFIX: -SNAPSHOT - - name: Upload artifacts to the Github release - id: upload_artifact - if: steps.publish.outcome == 'success' - uses: Roang-zero1/github-upload-release-artifacts-action@master - with: - args: build/distributions/grails-${{ steps.release_version.outputs.release_version }}.zip - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: Create Message for the Grails Documentation Release - if: steps.publish.outcome == 'success' - id: grails_docs_release_message + docs: + needs: publish + runs-on: ubuntu-latest + permissions: + contents: read + steps: + - name: Prepare Input + id: prep_inputs run: | echo "value={\"grails_version\":\"$RELEASE_VERSION\"}" >> $GITHUB_OUTPUT env: - RELEASE_VERSION: ${{ steps.release_version.outputs.release_version }} + RELEASE_VERSION: ${{ needs.publish.outputs.release_version }} - name: Invoke grails-doc release workflow - if: steps.publish.outcome == 'success' - id: grails_doc uses: benc-uk/workflow-dispatch@v1.2 with: workflow: Release repo: grails/grails-doc - ref: ${{ steps.extract_branch.outputs.value }} + ref: ${{ needs.publish.outputs.target_branch }} token: ${{ secrets.GH_TOKEN }} - inputs: ${{ steps.grails_docs_release_message.outputs.value }} + inputs: ${{ steps.prep_inputs.outputs.value }} + website: + needs: publish + runs-on: ubuntu-latest + permissions: + contents: read + steps: + - name: Prepare Input + id: prep_inputs + run: | + echo "value={\"grails_version\":\"$RELEASE_VERSION\"}" >> $GITHUB_OUTPUT + env: + RELEASE_VERSION: ${{ needs.publish.outputs.release_version }} - name: Invoke grails-static-website release workflow - if: steps.publish.outcome == 'success' + if: success() id: grails_static_website uses: benc-uk/workflow-dispatch@v1.2 with: @@ -114,5 +133,4 @@ jobs: repo: grails/grails-static-website ref: master token: ${{ secrets.GH_TOKEN }} - inputs: ${{ steps.grails_docs_release_message.outputs.value }} - + inputs: ${{ steps.prep_inputs.outputs.value }} \ No newline at end of file From 0436b1e7c8122f7fef6e962cf8087a1199e05fce Mon Sep 17 00:00:00 2001 From: Puneet Behl Date: Wed, 13 Dec 2023 20:37:06 +0530 Subject: [PATCH 2/4] Back to 6.1.1-SNAPSHOT --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 1b324aacc14..06d96724531 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ -projectVersion=6.1.2-SNAPSHOT +projectVersion=6.1.1-SNAPSHOT antVersion=1.10.14 aspectjVersion=1.9.21 asyncVersion=5.0.0 From a533144937676882db092de4f475b6f09ab7846f Mon Sep 17 00:00:00 2001 From: Puneet Behl Date: Wed, 13 Dec 2023 20:38:24 +0530 Subject: [PATCH 3/4] Revert accidental downgrade to actions/setup-java@v3 --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ea37eb19ee4..fd0c4246864 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,7 +21,7 @@ jobs: with: token: ${{ secrets.GH_TOKEN }} - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: 'adopt' java-version: '11' From 5e48e0ad192e2df48de1c0c9168a8e95ca851112 Mon Sep 17 00:00:00 2001 From: Puneet Behl Date: Wed, 13 Dec 2023 20:39:22 +0530 Subject: [PATCH 4/4] Revert accidental downgrade to actions/checkout@v3 --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index fd0c4246864..30f9c7e20ce 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -17,7 +17,7 @@ jobs: GIT_USER_EMAIL: behlp@unityfoundation.io steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: token: ${{ secrets.GH_TOKEN }} - name: Set up JDK