From 03f5e9c3e262e663f977b97b9ecc605b7a26d154 Mon Sep 17 00:00:00 2001 From: Frederick Michielssen Date: Fri, 24 Mar 2023 15:52:44 +0100 Subject: [PATCH] Updated build to use registry.oa.eu --- Jenkinsfile | 67 +++++++++++++++++-------------------------- kubernetesPod.yaml | 7 ++--- server/Dockerfile.app | 4 +-- server/pom.xml | 39 +++++++++++++------------ 4 files changed, 51 insertions(+), 66 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 72f6950..73d0043 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -11,10 +11,6 @@ pipeline { buildDiscarder(logRotator(numToKeepStr: '3')) } - environment { - REPO_PREFIX = "196229073436.dkr.ecr.eu-west-1.amazonaws.com/openanalytics/" - ACCOUNTID = "196229073436" - } stages { stage('Load maven cache repository from S3') { @@ -33,8 +29,9 @@ pipeline { env.GROUP_ID = sh(returnStdout: true, script: "mvn org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=project.groupId -q -DforceStdout").trim() env.ARTIFACT_ID = sh(returnStdout: true, script: "mvn org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=project.artifactId -q -DforceStdout").trim() env.VERSION = sh(returnStdout: true, script: "mvn org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=project.version -q -DforceStdout").trim() - env.REPO = "openanalytics/${env.ARTIFACT_ID}" + env.REGISTRY = "registry.openanalytics.eu" env.MVN_ARGS = "-Dmaven.repo.local=/home/jenkins/maven-repository --batch-mode" + env.MVN_EXLCUDE_PARENT = "" } } @@ -43,13 +40,9 @@ pipeline { stage('Build') { steps { container('builder') { - configFileProvider([configFile(fileId: 'maven-settings-rsb', variable: 'MAVEN_SETTINGS_RSB')]) { - - sh "mvn -s \$MAVEN_SETTINGS_RSB -U clean install -DskipTests -Ddocker.skip ${env.MVN_ARGS}" - + sh "mvn -s \$MAVEN_SETTINGS_RSB -U clean install -DskipTests -Ddocker.skip ${env.MVN_ARGS} ${env.MVN_EXLCUDE_PARENT}" } - } } } @@ -57,13 +50,11 @@ pipeline { stage('Test') { steps { container('builder') { - - configFileProvider([configFile(fileId: 'maven-settings-rsb', variable: 'MAVEN_SETTINGS_RSB')]) { - - sh "mvn -s \$MAVEN_SETTINGS_RSB test -Ddocker.skip ${env.MVN_ARGS}" - - } - + withDockerRegistry([credentialsId: "oa-sa-jenkins-registry", url: "https://registry.openanalytics.eu"]) { + configFileProvider([configFile(fileId: 'maven-settings-rsb', variable: 'MAVEN_SETTINGS_RSB')]) { + sh "mvn -s \$MAVEN_SETTINGS_RSB test ${env.MVN_ARGS} ${env.MVN_EXLCUDE_PARENT}" + } + } } } } @@ -71,28 +62,18 @@ pipeline { stage("Deploy to Nexus") { steps { container('builder') { - configFileProvider([configFile(fileId: 'maven-settings-rsb', variable: 'MAVEN_SETTINGS_RSB')]) { - - sh "mvn -s \$MAVEN_SETTINGS_RSB deploy -DskipTests -Ddocker.skip ${env.MVN_ARGS}" - + sh "mvn -s \$MAVEN_SETTINGS_RSB deploy -DskipTests -Ddocker.skip ${env.MVN_ARGS} ${env.MVN_EXLCUDE_PARENT}" } - } } } stage('Build Docker image') { steps { - dir('server') { - container('builder') { - - configFileProvider([configFile(fileId: 'maven-settings-rsb', variable: 'MAVEN_SETTINGS_RSB')]) { - - sh "mvn -s \$MAVEN_SETTINGS_RSB docker:build -Ddocker.repoPrefix=${env.REPO_PREFIX} ${env.MVN_ARGS}" - - } - + container('builder') { + configFileProvider([configFile(fileId: 'maven-settings-rsb', variable: 'MAVEN_SETTINGS_RSB')]) { + sh "mvn -s \$MAVEN_SETTINGS_RSB io.fabric8:docker-maven-plugin:build ${env.MVN_ARGS}" } } } @@ -100,16 +81,9 @@ pipeline { stage('Push to OA registry') { steps { - dir('server') { - container('builder') { - sh "aws --region eu-west-1 ecr describe-repositories --repository-names ${env.REPO} || aws --region eu-west-1 ecr create-repository --repository-name ${env.REPO}" - sh "aws --region eu-west-1 ecr describe-repositories --repository-names ${env.REPO}.liquibase || aws --region eu-west-1 ecr create-repository --repository-name ${env.REPO}.liquibase" - sh "\$(aws ecr get-login --registry-ids '${env.ACCOUNTID}' --region 'eu-west-1' --no-include-email)" - - configFileProvider([configFile(fileId: 'maven-settings-rsb', variable: 'MAVEN_SETTINGS_RSB')]) { - - sh "mvn -s \$MAVEN_SETTINGS_RSB docker:push -Ddocker.repoPrefix=${env.REPO_PREFIX} ${env.MVN_ARGS}" - } + container('builder') { + configFileProvider([configFile(fileId: 'maven-settings-rsb', variable: 'MAVEN_SETTINGS_RSB')]) { + sh "mvn -s \$MAVEN_SETTINGS_RSB io.fabric8:docker-maven-plugin:push -Ddocker.push.registry=${REGISTRY} ${env.MVN_ARGS}" } } } @@ -126,4 +100,15 @@ pipeline { } } + post { + success { + step([$class: 'JacocoPublisher', + execPattern: '**/target/jacoco.exec', + classPattern: '**/target/classes', + sourcePattern: '**/src/main/java', + exclusionPattern: '**/src/test*' + ]) + } + } + } diff --git a/kubernetesPod.yaml b/kubernetesPod.yaml index c3b35c4..1c3d3f7 100644 --- a/kubernetesPod.yaml +++ b/kubernetesPod.yaml @@ -1,9 +1,9 @@ apiVersion: v1 kind: Pod metadata: - name: phaedra2-service + name: phaedra2-builder labels: - ci: phaedra2-service-build + ci: phaedra2-builder spec: containers: - name: builder @@ -18,5 +18,4 @@ spec: limits: ephemeral-storage: "16Gi" memory: "2Gi" - cpu: "1.0" - + cpu: "1.0" \ No newline at end of file diff --git a/server/Dockerfile.app b/server/Dockerfile.app index 1cd2d9f..0eafce8 100644 --- a/server/Dockerfile.app +++ b/server/Dockerfile.app @@ -1,11 +1,11 @@ FROM registry.openanalytics.eu/library/openjdk:16-jdk-slim-buster ARG JAR_FILE -ADD $JAR_FILE /opt/phaedra/app.jar +ADD $JAR_FILE /opt/phaedra/service.jar ENV USER phaedra RUN useradd -c 'phaedra user' -m -d /home/$USER -s /bin/nologin $USER WORKDIR /opt/phaedra USER $USER -CMD ["java", "-jar", "/opt/phaedra/app.jar", "--spring.jmx.enabled=false"] +CMD ["java", "-jar", "/opt/phaedra/service.jar", "--spring.jmx.enabled=false"] diff --git a/server/pom.xml b/server/pom.xml index d5e4eae..551492a 100644 --- a/server/pom.xml +++ b/server/pom.xml @@ -14,9 +14,11 @@ phaedra2-pipelineservice-server - - ${project.parent.artifactId} - + 16 + ${java.version} + ${java.version} + openanalytics/${project.parent.artifactId} + @@ -52,16 +54,15 @@ org.springframework.boot spring-boot-maven-plugin - - - io.fabric8 + + + io.fabric8 docker-maven-plugin 0.37.0 - true - ${docker.repoPrefix}${docker.imageName} + ${docker.imageName} ${project.basedir}/Dockerfile.app @@ -72,27 +73,27 @@ - - ${docker.repoPrefix}${docker.imageName}.liquibase - - ${project.basedir}/Dockerfile.db - - ${project.version} - - - + + ${docker.imageName}.liquibase + + ${project.basedir}/Dockerfile.db + + ${project.version} + + + - default install build - + +