diff --git a/.github/workflows/on.pr.yml b/.github/workflows/on.pr.yml index 446f477..05f8a85 100644 --- a/.github/workflows/on.pr.yml +++ b/.github/workflows/on.pr.yml @@ -7,6 +7,8 @@ on: - main paths: - 'api/**' + - 'Dockerfile' + - '.github/workflows/*' jobs: quality_profile: @@ -20,11 +22,12 @@ jobs: - uses: actions/checkout@v4 with: fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis - - name: Set up JDK 18 + - name: Set up JDK 21 uses: actions/setup-java@v4 with: distribution: 'corretto' - java-version: 18 + java-version: '21' + check-latest: true - uses: actions/cache@v4 with: path: ~/.m2/repository @@ -33,11 +36,6 @@ jobs: ${{ runner.os }}-maven-5Jun- - name: Run unit tests run: mvn -f pom.xml clean package - - name: Set up JDK 21 for Sonar - uses: actions/setup-java@v4 - with: - distribution: 'corretto' - java-version: 21 - name: Cache SonarCloud packages uses: actions/cache@v4 with: diff --git a/Dockerfile b/Dockerfile index 2c40f3c..142ba82 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,9 @@ -FROM artifacts.developer.gov.bc.ca/docker-remote/maven:3.8.7-openjdk-18 as build +FROM artifacts.developer.gov.bc.ca/docker-remote/maven:3.9.9-amazoncorretto-21-alpine AS maven + +# Use the timezone-patched JDK for both compilation and the final runtime. +FROM artifacts.developer.gov.bc.ca/docker-remote/amazoncorretto:21.0.12-alpine3.23 AS build +COPY --from=maven /usr/share/maven /usr/share/maven +ENV PATH="/usr/share/maven/bin:${PATH}" WORKDIR /workspace/app COPY api/pom.xml . @@ -6,17 +11,17 @@ COPY api/src src RUN mvn package -DskipTests RUN mkdir -p target/dependency && (cd target/dependency; jar -xf ../*.jar) -FROM artifacts.developer.gov.bc.ca/docker-remote/openjdk:18.0.2.1-jdk-oracle -RUN useradd -ms /bin/bash spring && mkdir -p /logs && chown -R spring:spring /logs && chmod 755 /logs +FROM artifacts.developer.gov.bc.ca/docker-remote/amazoncorretto:21.0.12-alpine3.23 +RUN adduser -D -h /home/spring -s /bin/sh spring && mkdir -p /logs && chown -R spring:spring /logs && chmod 755 /logs USER spring VOLUME /tmp ARG DEPENDENCY=/workspace/app/target/dependency COPY --from=build ${DEPENDENCY}/BOOT-INF/lib /app/lib COPY --from=build ${DEPENDENCY}/META-INF /app/META-INF COPY --from=build ${DEPENDENCY}/BOOT-INF/classes /app -ENTRYPOINT ["java","-Duser.name=EDUC_GRAD_RULE_ENGINE_API","-Xms512m","-Xmx512m","-noverify","-XX:TieredStopAtLevel=1",\ +ENTRYPOINT ["java","-Duser.name=EDUC_GRAD_RULE_ENGINE_API","-Xms512m","-Xmx512m","-XX:TieredStopAtLevel=1",\ "-XX:+UseParallelGC","-XX:MinHeapFreeRatio=20","-XX:MaxHeapFreeRatio=40","-XX:GCTimeRatio=4",\ - "-XX:AdaptiveSizePolicyWeight=90","-XX:MaxMetaspaceSize=100m","-XX:ParallelGCThreads=1",\ + "-XX:AdaptiveSizePolicyWeight=90","-XX:MaxMetaspaceSize=300m","-XX:ParallelGCThreads=1",\ "-Djava.util.concurrent.ForkJoinPool.common.parallelism=1","-XX:CICompilerCount=2",\ "-XX:+ExitOnOutOfMemoryError","-Djava.security.egd=file:/dev/./urandom",\ "-Dspring.backgroundpreinitializer.ignore=true","-cp","app:app/lib/*",\ diff --git a/api/pom.xml b/api/pom.xml index 9654673..fd46f10 100644 --- a/api/pom.xml +++ b/api/pom.xml @@ -5,7 +5,7 @@ org.springframework.boot spring-boot-starter-parent - 3.0.2 + 3.0.13 ca.bc.gov.educ @@ -24,7 +24,10 @@ src/main/java/ca/bc/gov/educ/api/ruleengine/util/**, src/main/java/ca/bc/gov/educ/api/ruleengine/controller/APIMetadataController.java - 18 + 21 + 1.18.32 + 0.8.12 + 1.14.19 3.10.1 ${java.version} ${java.version} @@ -204,12 +207,12 @@ org.sonarsource.scanner.maven sonar-maven-plugin - 3.9.1.2184 + 5.8.0.7211 org.jacoco jacoco-maven-plugin - 0.8.8 + ${jacoco.version} org.apache.maven.plugins @@ -262,7 +265,14 @@ org.hibernate.orm.tooling hibernate-enhance-maven-plugin - 6.1.1.Final + ${hibernate.version} + + + net.bytebuddy + byte-buddy + ${byte-buddy.version} + +