Add CI build on several Spring Framework generations
This commit adds a GHA workflow that builds the project against a list of configurable Spring Framework versions. The build action has been updated to accept an additional input that tunes the Spring Framework version the build is using As a result, the default Spring Framework version of the project is now configured in gradle.properties. Closes gh-1802
This commit is contained in:
5
.github/actions/build/action.yml
vendored
5
.github/actions/build/action.yml
vendored
@@ -30,6 +30,9 @@ inputs:
|
||||
description: 'Whether to publish artifacts ready for deployment to Artifactory'
|
||||
required: false
|
||||
default: 'false'
|
||||
spring-framework-version:
|
||||
description: 'Spring Framework version to use'
|
||||
required: false
|
||||
outputs:
|
||||
build-scan-url:
|
||||
description: 'URL, if any, of the build scan produced by the build'
|
||||
@@ -55,7 +58,7 @@ runs:
|
||||
env:
|
||||
SPRING_REPOSITORY_PASSWORD: ${{ inputs.opensource-repository-password }}
|
||||
SPRING_REPOSITORY_USERNAME: ${{ inputs.opensource-repository-username }}
|
||||
run: ./gradlew check
|
||||
run: ./gradlew check ${{ inputs.spring-framework-version != '' && format('-PspringFrameworkVersion={0}', inputs.spring-framework-version) || '' }}
|
||||
- name: Publish
|
||||
id: publish
|
||||
if: ${{ inputs.publish == 'true' }}
|
||||
|
||||
44
.github/workflows/ci.yml
vendored
Normal file
44
.github/workflows/ci.yml
vendored
Normal file
@@ -0,0 +1,44 @@
|
||||
name: CI
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
jobs:
|
||||
ci:
|
||||
name: 'Spring Framework ${{ matrix.spring.generation}} | Java ${{ matrix.java.version}}'
|
||||
if: ${{ github.repository == 'spring-projects/spring-webflow' }}
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
java:
|
||||
- version: 17
|
||||
toolchain: false
|
||||
spring:
|
||||
- generation: 6.1.x
|
||||
version: 6.0.13
|
||||
- generation: 6.2.x
|
||||
version: 6.2.0-SNAPSHOT
|
||||
steps:
|
||||
- name: Check Out Code
|
||||
uses: actions/checkout@v4
|
||||
- name: Build
|
||||
id: build
|
||||
uses: ./.github/actions/build
|
||||
with:
|
||||
develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
|
||||
java-early-access: ${{ matrix.java.early-access || 'false' }}
|
||||
java-distribution: ${{ matrix.java.distribution }}
|
||||
java-toolchain: ${{ matrix.java.toolchain }}
|
||||
java-version: ${{ matrix.java.version }}
|
||||
spring-framework-version: ${{ matrix.spring.version }}
|
||||
- name: Send Notification
|
||||
if: always()
|
||||
uses: ./.github/actions/send-notification
|
||||
with:
|
||||
build-scan-url: ${{ steps.build.outputs.build-scan-url }}
|
||||
run-name: ${{ format('{0} | Spring Framework {1} | Java {2}', github.ref_name, matrix.spring.version, matrix.java.version) }}
|
||||
status: ${{ job.status }}
|
||||
webhook-url: ${{ secrets.GOOGLE_CHAT_WEBHOOK_URL }}
|
||||
@@ -22,7 +22,7 @@ allprojects {
|
||||
|
||||
dependencyManagement {
|
||||
imports {
|
||||
mavenBom "org.springframework:spring-framework-bom:6.0.7"
|
||||
mavenBom "org.springframework:spring-framework-bom:${springFrameworkVersion}"
|
||||
mavenBom "org.springframework.security:spring-security-bom:6.0.2"
|
||||
mavenBom "org.junit:junit-bom:5.7.2"
|
||||
}
|
||||
|
||||
@@ -1,2 +1,6 @@
|
||||
version=3.0.1-SNAPSHOT
|
||||
org.gradle.caching=true
|
||||
|
||||
springFrameworkVersion=6.0.7
|
||||
springFramework61xVersion=6.1.13
|
||||
springFramework62xVersion=6.2.0-SNAPSHOT
|
||||
|
||||
Reference in New Issue
Block a user