| name: Release |
| on: |
| release: |
| types: [published] |
| permissions: {} |
| jobs: |
| publish: |
| permissions: |
| contents: write # to create release |
| issues: write # to modify milestones |
| runs-on: ubuntu-latest |
| 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 |
| with: |
| token: ${{ secrets.GH_TOKEN }} |
| - name: Set up JDK |
| uses: actions/setup-java@v4 |
| with: |
| distribution: 'adopt' |
| java-version: '8' |
| - name: Set the current release version |
| id: release_version |
| 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: |
| arguments: assemble |
| env: |
| 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@c7d193f32edcb7bfad88892161225aeda64e9392 # v4 |
| 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 |
| env: |
| SECRING_FILE: ${{ secrets.SECRING_FILE }} |
| run: echo $SECRING_FILE | base64 -d > ${{ github.workspace }}/secring.gpg |
| - name: Publish to Sonatype OSSRH |
| id: publish |
| uses: gradle/gradle-build-action@v2 |
| env: |
| 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 }} |
| SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} |
| SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} |
| SONATYPE_NEXUS_URL: ${{ secrets.SONATYPE_NEXUS_URL }} |
| SONATYPE_STAGING_PROFILE_ID: ${{ secrets.SONATYPE_STAGING_PROFILE_ID }} |
| SIGNING_KEY: ${{ secrets.SIGNING_KEY }} |
| SIGNING_PASSPHRASE: ${{ secrets.SIGNING_PASSPHRASE }} |
| SECRING_FILE: ${{ secrets.SECRING_FILE }} |
| with: |
| arguments: -Psigning.secretKeyRingFile=${{ github.workspace }}/secring.gpg publishToSonatype closeAndReleaseSonatypeStagingRepository |
| - name: Run post-release |
| if: success() |
| uses: ./.github/actions/post-release |
| with: |
| token: ${{ secrets.GITHUB_TOKEN }} |
| env: |
| SNAPSHOT_SUFFIX: -SNAPSHOT |
| 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: ${{ needs.publish.outputs.release_version }} |
| - name: Invoke grails-doc release workflow |
| uses: benc-uk/workflow-dispatch@v1.2 |
| with: |
| workflow: Release |
| repo: grails/grails-doc |
| ref: ${{ needs.publish.outputs.target_branch }} |
| token: ${{ secrets.GH_TOKEN }} |
| 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: success() |
| id: grails_static_website |
| uses: benc-uk/workflow-dispatch@v1.2 |
| with: |
| workflow: Release |
| repo: grails/grails-static-website |
| ref: master |
| token: ${{ secrets.GH_TOKEN }} |
| inputs: ${{ steps.prep_inputs.outputs.value }} |