Merge pull request #40157 from snicoll #208
This file contains 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: Build and Deploy Snapshot | |
on: | |
push: | |
branches: | |
- 3.2.x | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
jobs: | |
build-and-deploy-snapshot: | |
name: Build and Deploy Snapshot | |
runs-on: ubuntu22-8-32 | |
if: ${{ github.repository == 'spring-projects/spring-boot' }} | |
steps: | |
- name: Set Up Java | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'liberica' | |
java-version: 17 | |
- name: Check Out | |
uses: actions/checkout@v4 | |
- name: Set Up Gradle | |
uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 | |
with: | |
cache-read-only: false | |
- name: Configure Gradle Properties | |
shell: bash | |
run: | | |
mkdir -p $HOME/.gradle | |
echo 'systemProp.user.name=spring-builds+github' >> $HOME/.gradle/gradle.properties | |
echo 'systemProp.org.gradle.internal.launcher.welcomeMessageEnabled=false' >> $HOME/.gradle/gradle.properties | |
echo 'org.gradle.daemon=false' >> $HOME/.gradle/gradle.properties | |
- name: Build and Publish | |
id: build | |
env: | |
CI: 'true' | |
GRADLE_ENTERPRISE_URL: 'https://ge.spring.io' | |
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_SECRET_ACCESS_KEY }} | |
GRADLE_ENTERPRISE_CACHE_USERNAME: ${{ secrets.GRADLE_ENTERPRISE_CACHE_USER }} | |
GRADLE_ENTERPRISE_CACHE_PASSWORD: ${{ secrets.GRADLE_ENTERPRISE_CACHE_PASSWORD }} | |
run: ./gradlew -PdeploymentRepository=$(pwd)/deployment-repository build publishAllPublicationsToDeploymentRepository | |
- name: Deploy | |
uses: spring-io/artifactory-deploy-action@26bbe925a75f4f863e1e529e85be2d0093cac116 # v0.0.1 | |
with: | |
uri: 'https://repo.spring.io' | |
username: ${{ secrets.ARTIFACTORY_USERNAME }} | |
password: ${{ secrets.ARTIFACTORY_PASSWORD }} | |
build-name: ${{ format('spring-boot-{0}', github.ref_name)}} | |
repository: 'libs-snapshot-local' | |
folder: 'deployment-repository' | |
signing-key: ${{ secrets.GPG_PRIVATE_KEY }} | |
signing-passphrase: ${{ secrets.GPG_PASSPHRASE }} | |
artifact-properties: | | |
/**/spring-boot-docs-*.zip::zip.type=docs,zip.deployed=false | |
- name: Send Notification | |
uses: ./.github/actions/send-notification | |
if: always() | |
with: | |
webhook-url: ${{ secrets.GOOGLE_CHAT_WEBHOOK_URL }} | |
status: ${{ job.status }} | |
build-scan-url: ${{ steps.build.outputs.build-scan-url }} | |
run-name: ${{ format('{0} | Linux | Java 17', github.ref_name) }} | |
- name: Read Version From gradle.properties | |
id: read-version | |
shell: bash | |
run: | | |
version=$(sed -n 's/version=\(.*\)/\1/p' gradle.properties) | |
echo "Version is $version" | |
echo "version=$version" >> $GITHUB_OUTPUT | |
outputs: | |
version: ${{ steps.read-version.outputs.version }} | |
run-verification-tests: | |
name: Verify ${{ needs.build-and-deploy-snapshot.outputs.version }} | |
runs-on: ubuntu-latest | |
needs: build-and-deploy-snapshot | |
steps: | |
- name: Check Out Release Verification Tests | |
uses: actions/checkout@v4 | |
with: | |
repository: spring-projects/spring-boot-release-verification | |
ref: 'main' | |
token: ${{ secrets.GH_ACTIONS_REPO_TOKEN }} | |
- name: Check Out Send Notification Action | |
uses: actions/checkout@v4 | |
with: | |
path: spring-boot | |
sparse-checkout: .github/actions/send-notification | |
- name: Set Up Java | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'liberica' | |
java-version: 17 | |
- name: Set Up Gradle | |
uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 | |
with: | |
cache-read-only: false | |
- name: Configure Gradle Properties | |
shell: bash | |
run: | | |
mkdir -p $HOME/.gradle | |
echo 'org.gradle.daemon=false' >> $HOME/.gradle/gradle.properties | |
- name: Run Release Verification Tests | |
env: | |
RVT_VERSION: ${{ needs.build-and-deploy-snapshot.outputs.version }} | |
RVT_RELEASE_TYPE: oss | |
run: ./gradlew spring-boot-release-verification-tests:test | |
- name: Upload Build Reports on Failure | |
uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: build-reports | |
path: '**/build/reports/' | |
- name: Send Notification | |
uses: ./spring-boot/.github/actions/send-notification | |
if: always() | |
with: | |
webhook-url: ${{ secrets.GOOGLE_CHAT_WEBHOOK_URL }} | |
status: ${{ job.status }} | |
run-name: ${{ format('{0} | Verification | {1}', github.ref_name, needs.build-and-deploy-snapshot.outputs.version) }} |