pipeline { agent { label 'docker' } environment { PRODUCT_NAME = '<%%RESERVED_NAME%%>' PRODUCT_GROUP = '<%%RESERVED_GROUPNAME%%>' } stages { stage('Checkout') { steps { checkout scm } } stage('Extract VERSION') { steps { script { env.VERSION = sh( script: ''' set -e VERSION_FILE=src/main/resources/META-INF/ncore-product/$PRODUCT_GROUP/version.properties VERSION=$(sed -n 's/^version=//p' "$VERSION_FILE") echo "$VERSION" ''', returnStdout: true ).trim() } } } stage('Make gradlew executable') { steps { sh 'chmod +x ./gradlew' } } stage('Build with Gradle') { steps { sh './gradlew clean --refresh-dependencies' sh './gradlew nTDC build dockerFile dockerUD rdbDockerFile distDockerCompose' sh "cp -r build/distDockerCompose /docker-projects/${params.STAND_ID}" } } stage('Build and Push Docker Images') { steps { script { withCredentials([usernamePassword(credentialsId: 'build', usernameVariable: 'USER', passwordVariable: 'PASS')]) { sh ''' echo "$PASS" | docker login --username "$USER" --password-stdin <%%FACTORY_REGISTRY_REPO%%> ''' def appImage = "<%%FACTORY_REGISTRY_IMAGE%%>:${env.VERSION}" def lappImage = "<%%FACTORY_REGISTRY_IMAGE%%>:latest" sh "cd build/docker && docker build -t ${appImage} ." sh "docker tag ${appImage} ${lappImage}" sh "docker push ${appImage}" sh "docker push ${lappImage}" def rdbImage = "<%%FACTORY_REGISTRY_IMAGE%%>-db:${env.VERSION}" def lrdbImage = "<%%FACTORY_REGISTRY_IMAGE%%>-db:latest" sh "cd build/docker && docker build -t ${rdbImage} ." sh "docker tag ${rdbImage} ${lrdbImage}" sh "docker push ${rdbImage}" sh "docker push ${lrdbImage}" def udbImage = "<%%FACTORY_REGISTRY_IMAGE%%>-update-db:${env.VERSION}" def ludbImage = "<%%FACTORY_REGISTRY_IMAGE%%>-update-db:latest" sh "cd build/docker && docker build -t ${udbImage} ." sh "docker tag ${udbImage} ${ludbImage}" sh "docker push ${udbImage}" sh "docker push ${ludbImage}" } } } } } post { success { echo "Проект ${env.PRODUCT_NAME} успешно собран на версии ${env.VERSION}" } failure { echo "Проект ${env.PRODUCT_NAME} не собрался на версии ${env.VERSION}!" } } }