81 lines
2.6 KiB
Groovy
81 lines
2.6 KiB
Groovy
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 publish dockerFile dockerUD rdbDockerFile dCD'
|
|
}
|
|
}
|
|
|
|
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 $REGISTRY
|
|
'''
|
|
def appImage = "<%%FACTORY_REGISTRY_IMAGE%%>:${env.VERSION}"
|
|
sh "cd build/docker && docker build -t ${appImage} ."
|
|
sh "docker push ${appImage}"
|
|
|
|
def rdbImage = "<%%FACTORY_REGISTRY_IMAGE%%>-db:${env.VERSION}"
|
|
sh "cd build/docker && docker build -t ${rdbImage} ."
|
|
sh "docker push ${rdbImage}"
|
|
|
|
def udbImage = "<%%FACTORY_REGISTRY_IMAGE%%>-update-db:${env.VERSION}"
|
|
sh "cd build/docker && docker build -t ${udbImage} ."
|
|
sh "docker push ${udbImage}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
post {
|
|
success {
|
|
echo "Проект ${env.PRODUCT_NAME} успешно собран на версии ${env.VERSION}"
|
|
}
|
|
failure {
|
|
echo "Проект ${env.PRODUCT_NAME} не собрался на версии ${env.VERSION}!"
|
|
}
|
|
}
|
|
}
|
|
|
|
ncoreRestoreDB{
|
|
verbose = true
|
|
} |