diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e1655f50..c540a583 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -2,26 +2,27 @@ name: Release on: release: types: [published] +env: + GIT_USER_NAME: puneetbehl + GIT_USER_EMAIL: behlp@unityfoundation.io jobs: - release: + publish: + outputs: + release_version: ${{ steps.release_version.outputs.value }} runs-on: ubuntu-latest strategy: matrix: java: ['11'] - env: - GIT_USER_NAME: puneetbehl - GIT_USER_EMAIL: behlp@objectcomputing.com steps: - name: Checkout repository - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4 + uses: actions/checkout@v4 with: token: ${{ secrets.GH_TOKEN }} - - uses: gradle/wrapper-validation-action@v1 - name: Set up JDK uses: actions/setup-java@v4 with: distribution: 'adopt' - java-version: ${{ matrix.java }} + java-version: 11 - name: Set the current release version id: release_version run: echo "release_version=${GITHUB_REF:11}" >> $GITHUB_OUTPUT @@ -29,6 +30,31 @@ jobs: uses: micronaut-projects/github-actions/pre-release@master 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@v4 + with: + name: testing-support-${{ steps.release_version.outputs.value }}.zip + path: build/distributions/testing-support-${{ 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/testing-support-${{ steps.release_version.outputs.value }}.zip + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Generate secring file env: SECRING_FILE: ${{ secrets.SECRING_FILE }} @@ -47,34 +73,81 @@ jobs: SIGNING_PASSPHRASE: ${{ secrets.SIGNING_PASSPHRASE }} SECRING_FILE: ${{ secrets.SECRING_FILE }} with: - arguments: -Psigning.secretKeyRingFile=${{ github.workspace }}/secring.gpg publishToSonatype closeAndReleaseSonatypeStagingRepository + arguments: | + -Psigning.secretKeyRingFile=${{ github.workspace }}/secring.gpg + publishToSonatype + closeSonaTypeStagingRepository + release: + needs: publish + runs-on: ubuntu-latest + permissions: + contents: read + steps: + - uses: actions/checkout@v4 + - name: Set up JDK + uses: actions/setup-java@v4 + with: + distribution: 'adopt' + java-version: '11' + - name: Checkout repository + uses: actions/checkout@v4 + with: + token: ${{ secrets.GH_TOKEN }} + ref: v${{ needs.publish.outputs.release_version }} + - name: Nexus Staging Close And Release + 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_STAGING_PROFILE_ID: ${{ secrets.SONATYPE_STAGING_PROFILE_ID }} + with: + arguments: | + findPublishedStagingRepository + releaseSonatypeStagingRepository + - name: Run post-release + if: success() + uses: micronaut-projects/github-actions/post-release@master + with: + token: ${{ secrets.GITHUB_TOKEN }} + env: + SNAPSHOT_SUFFIX: -SNAPSHOT + docs: + needs: publish + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - name: Set up JDK + uses: actions/setup-java@v4 + with: + distribution: 'adopt' + java-version: '11' + - name: Checkout repository + uses: actions/checkout@v4 + with: + token: ${{ secrets.GH_TOKEN }} + ref: v${{ needs.publish.outputs.release_version }} - name: Publish Documentation id: docs if: steps.publish.outcome == 'success' uses: gradle/gradle-build-action@v2 - with: - arguments: docs 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: Export Gradle Properties - uses: micronaut-projects/github-actions/export-gradle-properties@master + with: + arguments: docs - name: Publish to Github Pages if: steps.docs.outcome == 'success' - uses: micronaut-projects/github-pages-deploy-action@grails + uses: grails/github-pages-deploy-action@v2 env: - SKIP_SNAPSHOT: ${{ contains(steps.release_version.outputs.release_version, 'M') }} + SKIP_SNAPSHOT: ${{ contains(needs.publish.outputs.release_version, 'M') }} GH_TOKEN: ${{ secrets.GH_TOKEN }} BRANCH: gh-pages FOLDER: build/docs - VERSION: ${{ steps.release_version.outputs.release_version }} + VERSION: ${{ needs.publish.outputs.release_version }} COMMIT_EMAIL: ${{ env.GIT_USER_EMAIL }} - COMMIT_NAME: ${{ env.GIT_USER_NAME }} - - name: Run post-release - if: success() - uses: micronaut-projects/github-actions/post-release@master - with: - token: ${{ secrets.GITHUB_TOKEN }} - env: - SNAPSHOT_SUFFIX: -SNAPSHOT + COMMIT_NAME: ${{ env.GIT_USER_NAME }} \ No newline at end of file