From c2639e5a3e6ddfd9d9646c26c5a5bed8e8e92aa1 Mon Sep 17 00:00:00 2001 From: Mike Neilson Date: Sat, 27 Sep 2025 13:33:30 -0700 Subject: [PATCH 1/7] remove jdk 8 and 11 support. --- .github/workflows/build.yml | 17 ++++++++++++----- .github/workflows/java_compatibility.yml | 2 +- .github/workflows/sonar.yml | 9 +++++---- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a8280a78..3c031012 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -11,22 +11,27 @@ permissions: jobs: build: name: Build, Test, and Analyze + strategy: + matrix: + java: [ '17', '21' ] + fail-fast: false + max-parallel: 4 runs-on: ubuntu-latest steps: - uses: actions/checkout@v5.0.0 with: fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis - - name: Set up JDK 17 + - name: Set up JDK ${{ matrix.Java }} uses: actions/setup-java@v5.0.0 with: - java-version: 17 + java-version: ${{ matrix.Java }} distribution: 'temurin' - name: Cache SonarCloud packages uses: actions/cache@v4.2.3 with: path: ~/.sonar/cache - key: ${{ runner.os }}-sonar - restore-keys: ${{ runner.os }}-sonar + key: ${{ runner.os }}-sonar-${{ matrix.Java }} + restore-keys: ${{ runner.os }}-sonar-${{ matrix.Java }} - name: Setup Gradle uses: gradle/gradle-build-action@v3.5.0 with: @@ -55,9 +60,11 @@ jobs: - name: Upload Coverage Reports uses: actions/upload-artifact@v5.0.0 with: - name: coverage-report + name: coverage-report-${{ matrix.Java }} path: ./**/build/reports/jacoco/ if-no-files-found: error + - run: echo "jdk=${{ matrix.Java }}" >> $GITHUB_OUTPUT + container-build: name: Build Container Image runs-on: ubuntu-latest diff --git a/.github/workflows/java_compatibility.yml b/.github/workflows/java_compatibility.yml index ae236f89..5f7b9eab 100644 --- a/.github/workflows/java_compatibility.yml +++ b/.github/workflows/java_compatibility.yml @@ -10,7 +10,7 @@ jobs: build: strategy: matrix: - java: [ '8', '11', '17', '21' ] + java: [ '17', '21' ] fail-fast: false max-parallel: 4 name: Build on Java ${{ matrix.Java }} diff --git a/.github/workflows/sonar.yml b/.github/workflows/sonar.yml index 89768691..9e5884f9 100644 --- a/.github/workflows/sonar.yml +++ b/.github/workflows/sonar.yml @@ -9,10 +9,10 @@ jobs: runs-on: ubuntu-latest if: github.event.workflow_run && github.event.workflow_run.conclusion == 'success' steps: - - name: Set up JDK + - name: Set up JDK ${{ github.event.workflow_run.outputs.jdk }} uses: actions/setup-java@v5.0.0 with: - java-version: 17 + java-version: ${{ github.event.workflow_run.outputs.jdk }} distribution: temurin - name: Setup Gradle uses: gradle/actions/setup-gradle@v5.0.0 @@ -26,8 +26,8 @@ jobs: uses: actions/cache@v4 with: path: ~/.sonar/cache - key: ${{ runner.os }}-sonar - restore-keys: ${{ runner.os }}-sonar + key: ${{ runner.os }}-sonar-${{ github.event.workflow_run.outputs.jdk }} + restore-keys: ${{ runner.os }}-sonar-${{ github.event.workflow_run.outputs.jdk }} - name: Cache Gradle packages uses: actions/cache@v4 with: @@ -50,6 +50,7 @@ jobs: run: | ./gradlew sonar --info -Dorg.gradle.jvmargs=-Xmx4096M \ -Dsonar.scm.revision=${{ github.event.workflow_run.head_sha }} \ + -Dsonar.analysis.jdk=${{ github.event.workflow_run.outputs.jdk }} \ -Dsonar.pullrequest.key=${{ github.event.workflow_run.pull_requests[0].number }} \ -Dsonar.pullrequest.branch=${{ github.event.workflow_run.pull_requests[0].head.ref }} \ -Dsonar.pullrequest.base=${{ github.event.workflow_run.pull_requests[0].base.ref }} From 76b61c729d8a16704af38ecff5844bcf7355e9ff Mon Sep 17 00:00:00 2001 From: Mike Neilson Date: Sat, 27 Sep 2025 13:51:02 -0700 Subject: [PATCH 2/7] Actually set target java. --- .github/workflows/build.yml | 2 +- .../src/main/groovy/opendcs-rest-api.java-conventions.gradle | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3c031012..7ecc2988 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -47,7 +47,7 @@ jobs: - name: Upload WAR files uses: actions/upload-artifact@v5.0.0 with: - name: warfile + name: warfile-${{ matrix.Java }} path: ./**/build/libs/*.war retention-days: 1 if-no-files-found: error diff --git a/buildSrc/src/main/groovy/opendcs-rest-api.java-conventions.gradle b/buildSrc/src/main/groovy/opendcs-rest-api.java-conventions.gradle index f0979c1a..2e31f962 100644 --- a/buildSrc/src/main/groovy/opendcs-rest-api.java-conventions.gradle +++ b/buildSrc/src/main/groovy/opendcs-rest-api.java-conventions.gradle @@ -9,8 +9,8 @@ java { } compileJava { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } dependencies { From 03ed13981b16157fcb3d0531385037fa5461d11f Mon Sep 17 00:00:00 2001 From: Mike Neilson Date: Sat, 27 Sep 2025 13:52:07 -0700 Subject: [PATCH 3/7] Actually set target java. --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7ecc2988..a686d680 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -54,7 +54,7 @@ jobs: - name: Upload Test Reports uses: actions/upload-artifact@v5.0.0 with: - name: test-report + name: test-report-${{ matrix.Java }} path: ./**/build/reports/tests/** if-no-files-found: error - name: Upload Coverage Reports From 986561c61cf6bcaf7726d51ae08e357c3cb79172 Mon Sep 17 00:00:00 2001 From: Mike Neilson Date: Sat, 27 Sep 2025 17:19:52 -0700 Subject: [PATCH 4/7] updated dockerfile java. --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index abae688b..80cb9222 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM gradle:8.14-jdk11 AS builder +FROM gradle:8.14-jdk17 AS builder RUN --mount=type=cache,target=/home/gradle/.gradle WORKDIR /builddir From 87333440c94bca01891deb49b9b74fc4648e47ba Mon Sep 17 00:00:00 2001 From: Mike Neilson Date: Sat, 27 Sep 2025 17:24:40 -0700 Subject: [PATCH 5/7] Correct dockerfile java. --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 80cb9222..6172797b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,7 +9,7 @@ RUN gradle build --info --no-daemon FROM alpine:3.21.3 AS tomcat_base RUN apk --no-cache upgrade && \ apk --no-cache add \ - openjdk11-jre \ + openjdk17-jre \ curl \ bash From 22002d80d4dc4781d1a75986d886311acb2871a4 Mon Sep 17 00:00:00 2001 From: Mike Neilson Date: Sat, 27 Sep 2025 17:36:51 -0700 Subject: [PATCH 6/7] yet-another-java8-ref. --- .github/workflows/owasp_zap.yml | 4 ++-- opendcs-integration-test/build.gradle | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/owasp_zap.yml b/.github/workflows/owasp_zap.yml index d1c6f560..86d755ad 100644 --- a/.github/workflows/owasp_zap.yml +++ b/.github/workflows/owasp_zap.yml @@ -13,10 +13,10 @@ jobs: continue-on-error: true steps: - uses: actions/checkout@v5.0.0 - - name: Set up JDK 8 + - name: Set up JDK 17 uses: actions/setup-java@v5.0.0 with: - java-version: 8 + java-version: 17 distribution: 'temurin' - name: Cache Gradle packages uses: actions/cache@v4.2.3 diff --git a/opendcs-integration-test/build.gradle b/opendcs-integration-test/build.gradle index 613685f5..c21473ee 100644 --- a/opendcs-integration-test/build.gradle +++ b/opendcs-integration-test/build.gradle @@ -76,6 +76,7 @@ tasks.register('run', JavaExec) { dependsOn build def restWar = project(':opendcs-rest-api').tasks.named('war').get().archiveFile.get().asFile.getAbsolutePath() def guiWar = project(':opendcs-web-client').tasks.named('war').get().archiveFile.get().asFile.getAbsolutePath() + inputs.files(restWar,guiWar) group "application" dependsOn(':opendcs-rest-api:war', ':opendcs-web-client:war') dependsOn generateConfig From 7ef48660c0a2c1b9bd9c44a3b6363b6d07862e21 Mon Sep 17 00:00:00 2001 From: Mike Neilson Date: Thu, 6 Nov 2025 22:45:56 +0000 Subject: [PATCH 7/7] Set for Java 21 in line with main code. --- .github/workflows/build.yml | 2 +- .github/workflows/java_compatibility.yml | 2 +- .github/workflows/owasp_zap.yml | 4 ++-- .github/workflows/publish.yml | 4 ++-- .github/workflows/sonar.yml | 2 +- .github/workflows/swagger.yml | 4 ++-- Dockerfile | 4 ++-- .../main/groovy/opendcs-rest-api.java-conventions.gradle | 6 +++--- 8 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a686d680..e5ed3182 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,7 +13,7 @@ jobs: name: Build, Test, and Analyze strategy: matrix: - java: [ '17', '21' ] + java: ['21' ] fail-fast: false max-parallel: 4 runs-on: ubuntu-latest diff --git a/.github/workflows/java_compatibility.yml b/.github/workflows/java_compatibility.yml index 5f7b9eab..23d3424b 100644 --- a/.github/workflows/java_compatibility.yml +++ b/.github/workflows/java_compatibility.yml @@ -10,7 +10,7 @@ jobs: build: strategy: matrix: - java: [ '17', '21' ] + java: [ '21', '25' ] fail-fast: false max-parallel: 4 name: Build on Java ${{ matrix.Java }} diff --git a/.github/workflows/owasp_zap.yml b/.github/workflows/owasp_zap.yml index 86d755ad..9440312e 100644 --- a/.github/workflows/owasp_zap.yml +++ b/.github/workflows/owasp_zap.yml @@ -13,10 +13,10 @@ jobs: continue-on-error: true steps: - uses: actions/checkout@v5.0.0 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v5.0.0 with: - java-version: 17 + java-version: 21 distribution: 'temurin' - name: Cache Gradle packages uses: actions/cache@v4.2.3 diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 0af25686..a55e2a53 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -9,10 +9,10 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5.0.0 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v5.0.0 with: - java-version: 17 + java-version: 21 distribution: 'temurin' - name: Setup Gradle uses: gradle/gradle-build-action@v3.5.0 diff --git a/.github/workflows/sonar.yml b/.github/workflows/sonar.yml index 9e5884f9..c5a504ea 100644 --- a/.github/workflows/sonar.yml +++ b/.github/workflows/sonar.yml @@ -2,7 +2,7 @@ name: SonarCloud Scan on: workflow_run: workflows: ["Build and Test"] - type: [completed] + types: [completed] jobs: Sonar: diff --git a/.github/workflows/swagger.yml b/.github/workflows/swagger.yml index 4d37bcf2..b037cfdd 100644 --- a/.github/workflows/swagger.yml +++ b/.github/workflows/swagger.yml @@ -16,10 +16,10 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5.0.0 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v5.0.0 with: - java-version: 17 + java-version: 21 distribution: 'temurin' - name: Setup Gradle uses: gradle/gradle-build-action@v3.5.0 diff --git a/Dockerfile b/Dockerfile index 6172797b..905e1065 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM gradle:8.14-jdk17 AS builder +FROM gradle:8.14-jdk21 AS builder RUN --mount=type=cache,target=/home/gradle/.gradle WORKDIR /builddir @@ -9,7 +9,7 @@ RUN gradle build --info --no-daemon FROM alpine:3.21.3 AS tomcat_base RUN apk --no-cache upgrade && \ apk --no-cache add \ - openjdk17-jre \ + openjdk21-jre \ curl \ bash diff --git a/buildSrc/src/main/groovy/opendcs-rest-api.java-conventions.gradle b/buildSrc/src/main/groovy/opendcs-rest-api.java-conventions.gradle index 2e31f962..fa12d3c3 100644 --- a/buildSrc/src/main/groovy/opendcs-rest-api.java-conventions.gradle +++ b/buildSrc/src/main/groovy/opendcs-rest-api.java-conventions.gradle @@ -9,8 +9,8 @@ java { } compileJava { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 + sourceCompatibility = JavaVersion.VERSION_21 + targetCompatibility = JavaVersion.VERSION_21 } dependencies { @@ -25,7 +25,7 @@ test { } jacoco { - toolVersion = "0.8.9" + toolVersion = "0.8.14" } jacocoTestReport {