Release #29
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Release | |
| on: | |
| push: | |
| tags: | |
| - v3.2.[0-9]+ | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| jobs: | |
| build-and-stage-release: | |
| name: Build and Stage Release | |
| if: ${{ github.repository == 'spring-projects/spring-boot' || github.repository == 'spring-projects/spring-boot-commercial' }} | |
| runs-on: ${{ vars.UBUNTU_MEDIUIM || 'ubuntu-latest' }} | |
| steps: | |
| - name: Check Out Code | |
| uses: actions/checkout@v4 | |
| - name: Build and Publish | |
| id: build-and-publish | |
| uses: ./.github/actions/build | |
| with: | |
| commercial-release-repository-url: ${{ vars.COMMERCIAL_RELEASE_REPO_URL }} | |
| commercial-repository-password: ${{ secrets.COMMERCIAL_ARTIFACTORY_RO_PASSWORD }} | |
| commercial-repository-username: ${{ secrets.COMMERCIAL_ARTIFACTORY_RO_USERNAME }} | |
| commercial-snapshot-repository-url: ${{ vars.COMMERCIAL_SNAPSHOT_REPO_URL }} | |
| develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }} | |
| gradle-cache-read-only: false | |
| publish: true | |
| - name: Stage Release | |
| uses: spring-io/artifactory-deploy-action@26bbe925a75f4f863e1e529e85be2d0093cac116 # v0.0.1 | |
| with: | |
| artifact-properties: | | |
| /**/spring-boot-docs-*.zip::zip.type=docs,zip.deployed=false | |
| build-name: ${{ vars.COMMERCIAL && format('spring-boot-commercial-{0}', steps.build-and-publish.outputs.version) || format('spring-boot-{0}', steps.build-and-publish.outputs.version) }} | |
| folder: 'deployment-repository' | |
| password: ${{ vars.COMMERCIAL && secrets.COMMERCIAL_ARTIFACTORY_PASSWORD || secrets.ARTIFACTORY_PASSWORD }} | |
| project: ${{ vars.COMMERCIAL && 'spring' }} | |
| repository: ${{ vars.COMMERCIAL && 'spring-enterprise-maven-stage-local' || 'libs-staging-local' }} | |
| signing-key: ${{ secrets.GPG_PRIVATE_KEY }} | |
| signing-passphrase: ${{ secrets.GPG_PASSPHRASE }} | |
| uri: ${{ vars.COMMERCIAL_DEPLOY_REPO_URL || 'https://repo.spring.io' }} | |
| username: ${{ vars.COMMERCIAL && secrets.COMMERCIAL_ARTIFACTORY_USERNAME || secrets.ARTIFACTORY_USERNAME }} | |
| outputs: | |
| version: ${{ steps.build-and-publish.outputs.version }} | |
| verify: | |
| name: Verify | |
| needs: build-and-stage-release | |
| uses: ./.github/workflows/verify.yml | |
| secrets: | |
| commercial-repository-password: ${{ secrets.COMMERCIAL_ARTIFACTORY_RO_PASSWORD }} | |
| commercial-repository-username: ${{ secrets.COMMERCIAL_ARTIFACTORY_RO_USERNAME }} | |
| google-chat-webhook-url: ${{ secrets.GOOGLE_CHAT_WEBHOOK_URL }} | |
| opensource-repository-password: ${{ secrets.ARTIFACTORY_PASSWORD }} | |
| opensource-repository-username: ${{ secrets.ARTIFACTORY_USERNAME }} | |
| token: ${{ secrets.GH_ACTIONS_REPO_TOKEN }} | |
| with: | |
| staging: true | |
| version: ${{ needs.build-and-stage-release.outputs.version }} | |
| sync-to-maven-central: | |
| name: Sync to Maven Central | |
| if: ${{ !vars.COMMERCIAL }} | |
| needs: | |
| - build-and-stage-release | |
| - verify | |
| runs-on: ${{ vars.UBUNTU_SMALL || 'ubuntu-latest' }} | |
| steps: | |
| - name: Check Out Code | |
| uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | |
| - name: Sync to Maven Central | |
| uses: ./.github/actions/sync-to-maven-central | |
| with: | |
| jfrog-cli-config-token: ${{ secrets.JF_ARTIFACTORY_SPRING }} | |
| ossrh-s01-staging-profile: ${{ secrets.OSSRH_S01_STAGING_PROFILE }} | |
| ossrh-s01-token-password: ${{ secrets.OSSRH_S01_TOKEN_PASSWORD }} | |
| ossrh-s01-token-username: ${{ secrets.OSSRH_S01_TOKEN_USERNAME }} | |
| spring-boot-version: ${{ needs.build-and-stage-release.outputs.version }} | |
| promote-release: | |
| name: Promote Release | |
| needs: | |
| - build-and-stage-release | |
| - sync-to-maven-central | |
| runs-on: ${{ vars.UBUNTU_SMALL || 'ubuntu-latest' }} | |
| steps: | |
| - name: Set up JFrog CLI | |
| uses: jfrog/setup-jfrog-cli@18e785fb220d332edbf01964f853ff0fcaa22220 # v4.4.2 | |
| env: | |
| JF_ENV_SPRING: ${{ vars.COMMERCIAL && secrets.COMMERCIAL_JF_ARTIFACTORY_SPRING || secrets.JF_ARTIFACTORY_SPRING }} | |
| - name: Promote open source build | |
| if: ${{ !vars.COMMERCIAL }} | |
| run: jfrog rt build-promote ${{ format('spring-boot-{0}', needs.build-and-stage-release.outputs.version)}} ${{ github.run_number }} libs-release-local | |
| - name: Promote commercial build | |
| if: ${{ vars.COMMERCIAL }} | |
| run: jfrog rt build-promote ${{ format('spring-boot-commercial-{0}', needs.build-and-stage-release.outputs.version)}} ${{ github.run_number }} spring-enterprise-maven-prod-local --project spring | |
| publish-gradle-plugin: | |
| name: Publish Gradle Plugin | |
| if: ${{ !vars.COMMERCIAL }} | |
| needs: | |
| - build-and-stage-release | |
| - sync-to-maven-central | |
| runs-on: ${{ vars.UBUNTU_SMALL || 'ubuntu-latest' }} | |
| steps: | |
| - name: Check Out Code | |
| uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | |
| - name: Publish | |
| uses: ./.github/actions/publish-gradle-plugin | |
| with: | |
| gradle-plugin-publish-key: ${{ secrets.GRADLE_PLUGIN_PUBLISH_KEY }} | |
| gradle-plugin-publish-secret: ${{ secrets.GRADLE_PLUGIN_PUBLISH_SECRET }} | |
| jfrog-cli-config-token: ${{ secrets.JF_ARTIFACTORY_SPRING }} | |
| plugin-version: ${{ needs.build-and-stage-release.outputs.version }} | |
| publish-to-sdkman: | |
| name: Publish to SDKMAN! | |
| if: ${{ !vars.COMMERCIAL }} | |
| needs: | |
| - build-and-stage-release | |
| - sync-to-maven-central | |
| runs-on: ${{ vars.UBUNTU_SMALL || 'ubuntu-latest' }} | |
| steps: | |
| - name: Check Out Code | |
| uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | |
| - name: Publish to SDKMAN! | |
| uses: ./.github/actions/publish-to-sdkman | |
| with: | |
| make-default: false | |
| sdkman-consumer-key: ${{ secrets.SDKMAN_CONSUMER_KEY }} | |
| sdkman-consumer-token: ${{ secrets.SDKMAN_CONSUMER_TOKEN }} | |
| spring-boot-version: ${{ needs.build-and-stage-release.outputs.version }} | |
| create-github-release: | |
| name: Create GitHub Release | |
| needs: | |
| - build-and-stage-release | |
| - promote-release | |
| - publish-gradle-plugin | |
| - publish-to-sdkman | |
| runs-on: ${{ vars.UBUNTU_SMALL || 'ubuntu-latest' }} | |
| steps: | |
| - name: Check Out Code | |
| uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | |
| - name: Create GitHub Release | |
| uses: ./.github/actions/create-github-release | |
| with: | |
| milestone: ${{ needs.build-and-stage-release.outputs.version }} | |
| token: ${{ secrets.GH_ACTIONS_REPO_TOKEN }} | |
| commercial: ${{ vars.COMMERCIAL }} |