diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 07af7d2b302b62d259e0e3e77aaa30a37b887df6..fb2e064d9899c7c5a0ca243d10d49cbb853850d9 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -18,14 +18,10 @@ jobs: steps: - uses: actions/checkout@v2 - name: Build the Docker image for branch ${GITHUB_REF##*/} - run: DOCKER_BUILDKIT=1 docker build . --file ./docker/Dockerfile --tag brunoe/samplejee91::${GITHUB_REF##*/} - - - maven-sonar: - runs-on: [ self-hosted, Linux ] - needs: maven-build - # Develop branch only - # if: github.ref == 'refs/heads/develop' - steps: - - name: Launch a sonar analysis - run: ./mvn.sh -D sonar.branch.name=${GITHUB_REF#refs/heads/} --activate-profiles sonar sonar:sonar && mvn --activate-profiles sonar -pl . sonar-quality-gate:check + run: DOCKER_BUILDKIT=1 docker build . \ + --env GITHUBLOGIN="$GITHUBLOGIN" \ + --env GITHUBPASSWORD="$GITHUBPASSWORD" \ + --env SONAR_HOST="$SONAR_HOST" \ + --env SONAR_TOKEN="$SONAR_TOKEN" \ + --file ./docker/Dockerfile \ + --tag brunoe/samplejee91:${GITHUB_REF##*/} diff --git a/docker-compose.yml b/docker-compose.yml index efa6f90f9dec0197342ce0d4559b2fa839491062..87c0deecd0a7e2eb6b47c6087a21b9bcd0b7297f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,6 +2,11 @@ version: '3' services: jakartaEE: build: + args: + - GITHUBLOGIN + - GITHUBPASSWORD + - SONAR_HOST + - SONAR_TOKEN context: . dockerfile: docker/Dockerfile image: brunoe/samplejee91 diff --git a/docker/Dockerfile b/docker/Dockerfile index fb51ae3f296d5fdee7eaaf0ddef4ad5aef6d825f..8cf64ea7041b48430bbbc2e48f97333c464ec156 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,13 +1,27 @@ -# syntax=docker/dockerfile:1.3 - ### First we build the application in docker in a controlled env FROM maven:3.8.4-eclipse-temurin-11 as build WORKDIR /app + +#see https://www.jrebel.com/blog/how-to-speed-up-your-maven-build +# see https://www.baeldung.com/jvm-tiered-compilation +ENV MAVEN_OPTS="-XX:+TieredCompilation -XX:TieredStopAtLevel=1" +#ENV MAVEN_CLI_OPTS="-T 1C --settings /usr/share/maven/ref/settings-docker.xml -B" +ENV MAVEN_CLI_OPTS="--settings /usr/share/maven/ref/settings-docker.xml -B" + +COPY docker/settings-docker.xml /usr/share/maven/ref/ + # COPY pom.xml /app/pom.xml COPY . /app/ RUN --mount=type=cache,id=mvncache,target=/root/.m2/repository,rw \ - mvn -B verify + mvn $MAVEN_CLI_OPTS -Dmaven.test.skip=true verify + +RUN --mount=type=cache,id=mvncache,target=/root/.m2/repository,rw \ + if [ "$SONAR_TOKEN" ] ; then \ + mvn $MAVEN_CLI_OPTS -D sonar.branch.name=${GITHUB_REF#refs/heads/} \ + --activate-profiles sonar sonar:sonar && \ + mvn $MAVEN_CLI_OPTS --activate-profiles sonar -pl . sonar-quality-gate:check ; \ + fi ### Then we add the builded war to a JEE server. #FROM payara/server-full:5.2021.9-jdk11 as server diff --git a/.github/ci-settings.xml b/docker/settings-docker.xml similarity index 93% rename from .github/ci-settings.xml rename to docker/settings-docker.xml index c2019e0c17ddb8bd18f4d7341c95fe82e85c1c0c..fc533f816970b25ea2f095c6420d57129b2f3eb6 100644 --- a/.github/ci-settings.xml +++ b/docker/settings-docker.xml @@ -28,7 +28,7 @@ <profile> <id>sonar</id> <properties> - <sonar.host.url>http://compute-lsis-2:9000</sonar.host.url> + <sonar.host.url>${env.SONAR_HOST}</sonar.host.url> <sonar.login>${env.SONAR_TOKEN}</sonar.login> </properties> </profile>