diff --git a/.github/actions/build/action.yml b/.github/actions/build/action.yml index 6c85747b..734d3840 100644 --- a/.github/actions/build/action.yml +++ b/.github/actions/build/action.yml @@ -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' }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..43d7ac03 --- /dev/null +++ b/.github/workflows/ci.yml @@ -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 }} diff --git a/build.gradle b/build.gradle index 1ab2e990..8424c124 100644 --- a/build.gradle +++ b/build.gradle @@ -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" } diff --git a/gradle.properties b/gradle.properties index d3b3952e..08f5f703 100644 --- a/gradle.properties +++ b/gradle.properties @@ -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