Skip to content

Commit c67f1b3

Browse files
committed
Run tests with every supported Spring Boot version
1 parent 95ae5ee commit c67f1b3

4 files changed

Lines changed: 63 additions & 15 deletions

File tree

.github/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# Placeholder for documentation

.github/spring-versions.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"matrix": [
3+
{ "boot": "3.0.13", "framework": "6.0.14", "java": "17" },
4+
{ "boot": "3.0.13", "framework": "6.0.14", "java": "21" },
5+
{ "boot": "3.1.12", "framework": "6.0.21", "java": "17" },
6+
{ "boot": "3.1.12", "framework": "6.0.21", "java": "21" },
7+
{ "boot": "3.2.12", "framework": "6.1.15", "java": "17" },
8+
{ "boot": "3.2.12", "framework": "6.1.15", "java": "21" },
9+
{ "boot": "3.3.12", "framework": "6.1.20", "java": "17" },
10+
{ "boot": "3.3.12", "framework": "6.1.20", "java": "21" },
11+
{ "boot": "3.4.6", "framework": "6.2.7", "java": "17" },
12+
{ "boot": "3.4.6", "framework": "6.2.7", "java": "21" }
13+
]
14+
}

.github/workflows/build.yml

Lines changed: 47 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,57 @@ on:
77
workflow_dispatch:
88

99
jobs:
10+
generate-matrix:
11+
runs-on: ubuntu-latest
12+
outputs:
13+
matrix: ${{ steps.set-matrix.outputs.matrix }}
14+
steps:
15+
- uses: actions/checkout@v4
16+
- name: Read matrix from JSON
17+
id: set-matrix
18+
run: |
19+
MATRIX=$(jq -c '.matrix' .github/spring-versions.json)
20+
echo "matrix={\"include\":$MATRIX}" >> $GITHUB_OUTPUT
21+
22+
regression-tests:
23+
needs: generate-matrix
24+
runs-on: ubuntu-latest
25+
strategy:
26+
fail-fast: false
27+
matrix: ${{ fromJson(needs.generate-matrix.outputs.matrix) }}
28+
name: Test with Java ${{ matrix.java }} / Spring Boot ${{ matrix.boot }}
29+
steps:
30+
- name: Checkout code
31+
uses: actions/checkout@v4
32+
with:
33+
fetch-depth: 0
34+
35+
- name: Setup Java
36+
uses: actions/setup-java@v4
37+
with:
38+
distribution: temurin
39+
java-version: ${{ matrix.java }}
40+
41+
- name: Run tests and generate reports
42+
run: ./gradlew testAndReport -PspringBootVersion=${{ matrix.boot }} -PspringFrameworkVersion=${{ matrix.framework }}
43+
44+
- name: Upload Artifact
45+
uses: actions/upload-artifact@v4
46+
if: always()
47+
with:
48+
name: report-java-${{ matrix.java }}-spring-boot-${{ matrix.boot }}
49+
path: build/reports/**
50+
retention-days: 5
51+
52+
# todo kirjutada readme ka, mis põhimõttel asi toimib ning kuidas uuendada + kuidas testida erinevaid SP versioone
53+
1054
test:
1155
runs-on: ubuntu-latest
1256
strategy:
1357
fail-fast: false
1458
matrix:
1559
java: [ '17', '21' ]
16-
spring-boot-version: ['3.0.13', '3.1.12', '3.2.12', '3.3.12', '3.4.6', '3.5.0']
17-
name: Test with Java ${{ matrix.Java }} / Spring Boot ${{ matrix.spring-boot-version }}
60+
name: Test with latest version of Spring Boot and Java ${{ matrix.java }}
1861
steps:
1962
- name: Checkout code
2063
uses: actions/checkout@v4
@@ -27,23 +70,19 @@ jobs:
2770
distribution: temurin
2871
java-version: ${{ matrix.java }}
2972

30-
- name: Update Spring Boot version
31-
run: |
32-
./gradlew useSpringBootVersion -PspringBootVersion=${{ matrix.spring-boot-version }}
33-
3473
- name: Run tests and generate reports
3574
run: ./gradlew testAndReport
3675

3776
- name: Upload Artifact
3877
uses: actions/upload-artifact@v4
3978
if: always()
4079
with:
41-
name: report-java-${{ matrix.java }}-${{ matrix.spring-boot-version }}
80+
name: report-java-${{ matrix.java }}
4281
path: build/reports/**
4382
retention-days: 5
4483

4584
- name: Run Sonar analysis
46-
if: matrix.java == '17' && matrix.spring-boot-version == '3.5.0'
85+
if: matrix.java == '17'
4786
env:
4887
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
4988
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}

build.gradle

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
buildscript {
22
ext {
33
springBootVersion = project.hasProperty('springBootVersion') ? project.springBootVersion : '3.5.0'
4-
springVersion = '6.2.7'
4+
springVersion = project.hasProperty('springFrameworkVersion') ? project.springFrameworkVersion : '6.2.7'
55
jacksonVersion = '2.19.0'
66
retrofitVersion = '2.11.0'
77
}
@@ -112,9 +112,3 @@ dependencies {
112112
configurations {
113113
testImplementation.extendsFrom compileOnly
114114
}
115-
116-
tasks.register('useSpringBootVersion') {
117-
doLast {
118-
println "Using Spring Boot version: ${springBootVersion}"
119-
}
120-
}

0 commit comments

Comments
 (0)