You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
3.1 KiB
83 lines
3.1 KiB
name: CI |
|
on: |
|
push: |
|
branches: |
|
- main |
|
concurrency: |
|
group: ${{ github.workflow }}-${{ github.ref }} |
|
jobs: |
|
ci: |
|
name: '${{ matrix.os.name}} | Java ${{ matrix.java.version}}' |
|
runs-on: ${{ matrix.os.id }} |
|
if: ${{ github.repository == 'spring-projects/spring-boot' }} |
|
strategy: |
|
matrix: |
|
os: |
|
- id: ubuntu22-8-32 |
|
name: Linux |
|
- id: windows-latest |
|
name: Windows |
|
java: |
|
- version: 17 |
|
toolchain: false |
|
- version: 21 |
|
toolchain: true |
|
- version: 22 |
|
toolchain: true |
|
exclude: |
|
- os: |
|
name: Linux |
|
java: |
|
version: 17 |
|
steps: |
|
- name: Set Up Java |
|
uses: actions/setup-java@v4 |
|
with: |
|
distribution: liberica |
|
java-version: | |
|
${{ matrix.java.version }} |
|
${{ matrix.java.toolchain && '17' || '' }} |
|
- 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@1168cd3d07c1876a65e1724114de42ccbdfa7b78 # v3.2.1 |
|
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: 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 build |
|
- 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) }}
|
|
|