13 changed files with 194 additions and 211 deletions
@ -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 @@ |
|||||||
|
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 @@ |
|||||||
|
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 @@ |
|||||||
#!/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 @@ |
|||||||
#!/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 @@ |
|||||||
#!/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 @@ |
|||||||
--- |
|
||||||
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 @@ |
|||||||
--- |
|
||||||
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 @@ |
|||||||
--- |
|
||||||
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