13 changed files with 194 additions and 211 deletions
@ -0,0 +1,33 @@
@@ -0,0 +1,33 @@
|
||||
name: Send notification |
||||
description: Sends a Google Chat message as a notification of the job's outcome |
||||
inputs: |
||||
webhook-url: |
||||
description: 'Google Chat Webhook URL' |
||||
required: true |
||||
status: |
||||
description: 'Status of the job' |
||||
required: true |
||||
build-scan-url: |
||||
description: 'URL of the build scan to include in the notification' |
||||
run-name: |
||||
description: 'Name of the run to include in the notification' |
||||
default: ${{ format('{0} {1}', github.ref_name, github.job) }} |
||||
runs: |
||||
using: composite |
||||
steps: |
||||
- shell: bash |
||||
run: | |
||||
echo "BUILD_SCAN=${{ inputs.build-scan-url == '' && ' [build scan unavailable]' || format(' [<{0}|Build Scan>]', inputs.build-scan-url) }}" >> "$GITHUB_ENV" |
||||
echo "RUN_URL=${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" >> "$GITHUB_ENV" |
||||
- shell: bash |
||||
if: ${{ inputs.status == 'success' }} |
||||
run: | |
||||
curl -X POST '${{ inputs.webhook-url }}' -H 'Content-Type: application/json' -d '{ text: "<${{ env.RUN_URL }}|${{ inputs.run-name }}> was successful ${{ env.BUILD_SCAN }}"}' || true |
||||
- shell: bash |
||||
if: ${{ inputs.status == 'failure' }} |
||||
run: | |
||||
curl -X POST '${{ inputs.webhook-url }}' -H 'Content-Type: application/json' -d '{ text: "<users/all> *<${{ env.RUN_URL }}|${{ inputs.run-name }}> failed* ${{ env.BUILD_SCAN }}"}' || true |
||||
- shell: bash |
||||
if: ${{ inputs.status == 'cancelled' }} |
||||
run: | |
||||
curl -X POST '${{ inputs.webhook-url }}' -H 'Content-Type: application/json' -d '{ text: "<${{ env.RUN_URL }}|${{ inputs.run-name }}> was cancelled"}' || true |
||||
@ -0,0 +1,64 @@
@@ -0,0 +1,64 @@
|
||||
name: Build and deploy snapshot |
||||
on: |
||||
push: |
||||
branches: |
||||
- 5.3.x |
||||
concurrency: |
||||
group: ${{ github.workflow }}-${{ github.ref }} |
||||
jobs: |
||||
build-and-deploy-snapshot: |
||||
if: ${{ github.repository == 'spring-projects/spring-framework' }} |
||||
name: Build and deploy snapshot |
||||
runs-on: ubuntu-latest |
||||
steps: |
||||
- name: Set up Java |
||||
uses: actions/setup-java@v4 |
||||
with: |
||||
distribution: 'liberica' |
||||
java-version: 8 |
||||
- name: Check out code |
||||
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 |
||||
echo 'org.gradle.daemon=4' >> $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@v0.0.1 |
||||
with: |
||||
uri: 'https://repo.spring.io' |
||||
username: ${{ secrets.ARTIFACTORY_USERNAME }} |
||||
password: ${{ secrets.ARTIFACTORY_PASSWORD }} |
||||
build-name: ${{ format('spring-framework-{0}', github.ref_name)}} |
||||
repository: 'libs-snapshot-local' |
||||
folder: 'deployment-repository' |
||||
signing-key: ${{ secrets.GPG_PRIVATE_KEY }} |
||||
signing-passphrase: ${{ secrets.GPG_PASSPHRASE }} |
||||
artifact-properties: | |
||||
/**/framework-api-*.zip::zip.name=spring-framework,zip.deployed=false |
||||
/**/framework-api-*-docs.zip::zip.type=docs |
||||
/**/framework-api-*-schema.zip::zip.type=schema |
||||
- 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 8', github.ref_name) }} |
||||
@ -0,0 +1,82 @@
@@ -0,0 +1,82 @@
|
||||
name: CI |
||||
on: |
||||
push: |
||||
branches: |
||||
- 5.3.x |
||||
concurrency: |
||||
group: ${{ github.workflow }}-${{ github.ref }} |
||||
jobs: |
||||
ci: |
||||
if: ${{ github.repository == 'spring-projects/spring-framework' }} |
||||
strategy: |
||||
matrix: |
||||
os: |
||||
- id: ubuntu-latest |
||||
name: Linux |
||||
java: |
||||
- version: 8 |
||||
toolchain: false |
||||
- version: 17 |
||||
toolchain: true |
||||
- version: 21 |
||||
toolchain: true |
||||
exclude: |
||||
- os: |
||||
name: Linux |
||||
java: |
||||
version: 8 |
||||
name: '${{ matrix.os.name}} | Java ${{ matrix.java.version}}' |
||||
runs-on: ${{ matrix.os.id }} |
||||
steps: |
||||
- name: Set up Java |
||||
uses: actions/setup-java@v4 |
||||
with: |
||||
distribution: 'liberica' |
||||
java-version: | |
||||
${{ matrix.java.version }} |
||||
${{ matrix.java.toolchain && '8' || '' }} |
||||
- name: Prepare Windows runner |
||||
if: ${{ runner.os == 'Windows' }} |
||||
run: | |
||||
git config --global core.autocrlf true |
||||
git config --global core.longPaths true |
||||
Stop-Service -name Docker |
||||
- name: Check out code |
||||
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 |
||||
echo 'org.gradle.daemon=4' >> $HOME/.gradle/gradle.properties |
||||
- name: Configure toolchain properties |
||||
if: ${{ matrix.java.toolchain }} |
||||
shell: bash |
||||
run: | |
||||
echo toolchainVersion=${{ matrix.java.version }} >> $HOME/.gradle/gradle.properties |
||||
echo systemProp.org.gradle.java.installations.auto-detect=false >> $HOME/.gradle/gradle.properties |
||||
echo systemProp.org.gradle.java.installations.auto-download=false >> $HOME/.gradle/gradle.properties |
||||
echo systemProp.org.gradle.java.installations.paths=${{ format('$JAVA_HOME_{0}_X64', matrix.java.version) }} >> $HOME/.gradle/gradle.properties |
||||
- name: Build |
||||
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 check |
||||
- 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} | {1} | Java {2}', github.ref_name, matrix.os.name, matrix.java.version) }} |
||||
@ -1,8 +0,0 @@
@@ -1,8 +0,0 @@
|
||||
#!/bin/bash |
||||
set -e |
||||
|
||||
source $(dirname $0)/common.sh |
||||
|
||||
pushd git-repo > /dev/null |
||||
./gradlew -Dorg.gradle.internal.launcher.welcomeMessageEnabled=false --no-daemon --max-workers=4 check |
||||
popd > /dev/null |
||||
@ -1,9 +0,0 @@
@@ -1,9 +0,0 @@
|
||||
#!/bin/bash |
||||
set -e |
||||
|
||||
source $(dirname $0)/common.sh |
||||
repository=$(pwd)/distribution-repository |
||||
|
||||
pushd git-repo > /dev/null |
||||
./gradlew -Dorg.gradle.internal.launcher.welcomeMessageEnabled=false --no-daemon --max-workers=4 -PdeploymentRepository=${repository} build publishAllPublicationsToDeploymentRepository |
||||
popd > /dev/null |
||||
@ -1,9 +0,0 @@
@@ -1,9 +0,0 @@
|
||||
#!/bin/bash |
||||
set -e |
||||
|
||||
source $(dirname $0)/common.sh |
||||
|
||||
pushd git-repo > /dev/null |
||||
./gradlew -Dorg.gradle.internal.launcher.welcomeMessageEnabled=false -Porg.gradle.java.installations.fromEnv=JDK17 \ |
||||
-PmainToolchain=${MAIN_TOOLCHAIN} -PtestToolchain=${TEST_TOOLCHAIN} --no-daemon --max-workers=4 check |
||||
popd > /dev/null |
||||
@ -1,19 +0,0 @@
@@ -1,19 +0,0 @@
|
||||
--- |
||||
platform: linux |
||||
inputs: |
||||
- name: git-repo |
||||
caches: |
||||
- path: gradle |
||||
params: |
||||
BRANCH: |
||||
CI: true |
||||
GRADLE_ENTERPRISE_ACCESS_KEY: |
||||
GRADLE_ENTERPRISE_CACHE_USERNAME: |
||||
GRADLE_ENTERPRISE_CACHE_PASSWORD: |
||||
GRADLE_ENTERPRISE_URL: https://ge.spring.io |
||||
run: |
||||
path: bash |
||||
args: |
||||
- -ec |
||||
- | |
||||
${PWD}/git-repo/ci/scripts/build-pr.sh |
||||
@ -1,22 +0,0 @@
@@ -1,22 +0,0 @@
|
||||
--- |
||||
platform: linux |
||||
inputs: |
||||
- name: git-repo |
||||
outputs: |
||||
- name: distribution-repository |
||||
- name: git-repo |
||||
caches: |
||||
- path: gradle |
||||
params: |
||||
BRANCH: |
||||
CI: true |
||||
GRADLE_ENTERPRISE_ACCESS_KEY: |
||||
GRADLE_ENTERPRISE_CACHE_USERNAME: |
||||
GRADLE_ENTERPRISE_CACHE_PASSWORD: |
||||
GRADLE_ENTERPRISE_URL: https://ge.spring.io |
||||
run: |
||||
path: bash |
||||
args: |
||||
- -ec |
||||
- | |
||||
${PWD}/git-repo/ci/scripts/build-project.sh |
||||
@ -1,24 +0,0 @@
@@ -1,24 +0,0 @@
|
||||
--- |
||||
platform: linux |
||||
inputs: |
||||
- name: git-repo |
||||
outputs: |
||||
- name: distribution-repository |
||||
- name: git-repo |
||||
caches: |
||||
- path: gradle |
||||
params: |
||||
BRANCH: |
||||
CI: true |
||||
MAIN_TOOLCHAIN: |
||||
TEST_TOOLCHAIN: |
||||
GRADLE_ENTERPRISE_ACCESS_KEY: |
||||
GRADLE_ENTERPRISE_CACHE_USERNAME: |
||||
GRADLE_ENTERPRISE_CACHE_PASSWORD: |
||||
GRADLE_ENTERPRISE_URL: https://ge.spring.io |
||||
run: |
||||
path: bash |
||||
args: |
||||
- -ec |
||||
- | |
||||
${PWD}/git-repo/ci/scripts/check-project.sh |
||||
Loading…
Reference in new issue