diff --git a/Jenkinsfile-OTA b/Jenkinsfile-OTA new file mode 100644 index 0000000..431bd62 --- /dev/null +++ b/Jenkinsfile-OTA @@ -0,0 +1,89 @@ +def PIPELINE_AGENT_LABEL = 'Build-Medium' +def DOCKER_MAVEN_IMAGE = 'maven:3-eclipse-temurin-21' +def CICD_LAST_STARTED_STAGE = '' + +pipeline { + agent { + label PIPELINE_AGENT_LABEL + } + + environment { + JOB_NAME_CLEAN = env.JOB_BASE_NAME.toLowerCase() + GENERATED_BUILD_NAME = sh(script: "${CICD_SCRIPTS_DIR}/job/get_build_name.sh", returnStdout: true) + + AERIUS_REGISTRY_HOSTNAME = credentials('DOCKER_REGISTRY_HOSTNAME') + AERIUS_REGISTRY_PATH = sh(script: "${CICD_SCRIPTS_DIR}/docker/get_registry_path.sh", returnStdout: true) + AERIUS_REGISTRY_URL = "${env.AERIUS_REGISTRY_HOSTNAME}/${env.AERIUS_REGISTRY_PATH}/" + AERIUS_IMAGE_TAG = sh(script: "${CICD_SCRIPTS_DIR}/docker/get_image_tag.sh", returnStdout: true) + + } + + stages { + stage('Init') { + steps { + buildName GENERATED_BUILD_NAME + } + } + + stage('Maven') { + agent { + docker { + label PIPELINE_AGENT_LABEL + image DOCKER_MAVEN_IMAGE + reuseNode true + } + } + steps { + script { CICD_LAST_STARTED_STAGE = STAGE_NAME } + sh ''' + mvn clean versions:set -DnewVersion="${AERIUS_IMAGE_TAG}" -Pdeploy --no-transfer-progress + mvn clean package -Pdeploy -DskipTests -DfailIfNoTests=true --no-transfer-progress + ''' + } + } + + stage('Docker Images') { + + steps { + script { CICD_LAST_STARTED_STAGE = STAGE_NAME } + sh ''' + cd docker + "${CICD_SCRIPTS_DIR}"/docker/images_v1.0.sh + ''' + } + } + + stage('Post job') { + environment { + DEPLOY_OTA_ENVIRONMENT_CICD_URL = credentials('DEPLOY_OTA_ENVIRONMENT_CICD_URL') + DEPLOY_OTA_ENVIRONMENT_CICD_LOGIN = credentials('DEPLOY_OTA_ENVIRONMENT_CICD_LOGIN') + FLAGS = "${env.JOB_SPECIFIC_FLAGS ?: ''}" + CICD_JOB_MESSAGES = sh(script: """${CICD_SCRIPTS_DIR}/job/add_job_duration.sh build "${currentBuild.durationString}" """, returnStdout: true) + } + + steps { + script { CICD_LAST_STARTED_STAGE = STAGE_NAME } + sh ''' + "${CICD_SCRIPTS_DIR}"/job/postscript_v1.0.sh + ''' + } + } + } + + post { + always { + withBuildUser { + script { + if (currentBuild.result != 'SUCCESS') { + env.CICD_LAST_STARTED_STAGE = CICD_LAST_STARTED_STAGE + mattermostSend( + channel: (env.MATTERMOST_CHANNEL ? "#${env.MATTERMOST_CHANNEL}" : null), + color: sh(script: """${CICD_SCRIPTS_DIR}/job/notify_mattermost_color.sh "${currentBuild.result}" """, returnStdout: true), + message: sh(script: """${CICD_SCRIPTS_DIR}/job/notify_mattermost_message.sh "${currentBuild.result}" "${currentBuild.durationString}" build """, returnStdout: true) + ) + } + } + } + } + } +} diff --git a/Jenkinsfile-PullRequestChecker b/Jenkinsfile-PullRequestChecker new file mode 100644 index 0000000..ee8931c --- /dev/null +++ b/Jenkinsfile-PullRequestChecker @@ -0,0 +1,35 @@ +def PIPELINE_AGENT_LABEL = 'PullRequestChecker' +def DOCKER_MAVEN_IMAGE = 'maven:3-eclipse-temurin-21' + +pipeline { + agent { + label PIPELINE_AGENT_LABEL + } + + stages { + stage('Build Maven') { + agent { + docker { + label PIPELINE_AGENT_LABEL + image DOCKER_MAVEN_IMAGE + reuseNode true + } + } + + steps { + withCredentials([string(credentialsId: 'SONAR_TOKEN', variable: 'SONAR_TOKEN')]) { + sh 'mvn clean verify org.sonarsource.scanner.maven:sonar-maven-plugin::sonar -Pdeploy,sonar --no-transfer-progress -Dsonar.java.binaries=target -Dsonar.pullrequest.key=${CHANGE_ID} -Dsonar.pullrequest.branch=PR-${CHANGE_ID} -Dsonar.pullrequest.base=${CHANGE_TARGET}' + } + } + } + + stage('Build Docker') { + steps { + sh ''' + cd docker + "${CICD_SCRIPTS_DIR}"/docker/images_v1.0.sh --no-push + ''' + } + } + } +} diff --git a/docker/build.sh b/docker/build.sh deleted file mode 100755 index 1655278..0000000 --- a/docker/build.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env bash - -# Exit on error -set -e - -# Change current directory to directory of script so it can be called from everywhere -SCRIPT_PATH=$(readlink -f "${0}") -SCRIPT_DIR=$(dirname "${SCRIPT_PATH}") -cd "${SCRIPT_DIR}" - -# Build like we are in the root directory -docker-compose --project-directory ../ --env-file docker/.env build diff --git a/docker/prepare.sh b/docker/prepare.sh deleted file mode 100755 index a2e6981..0000000 --- a/docker/prepare.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env bash - -# Exit on error -set -e - -# Change current directory to directory of script so it can be called from everywhere -SCRIPT_PATH=$(readlink -f "${0}") -SCRIPT_DIR=$(dirname "${SCRIPT_PATH}") -cd "${SCRIPT_DIR}" - -# For now does nothing - placeholder