добавлен базовый Jenkinsfile
This commit is contained in:
86
Jenkinsfile
vendored
Normal file
86
Jenkinsfile
vendored
Normal file
@ -0,0 +1,86 @@
|
||||
pipeline {
|
||||
agent any
|
||||
|
||||
environment {
|
||||
REGISTRY = 'src.red-soft.biz'
|
||||
PRODUCT_NAME = 'sample'
|
||||
PRODUCT_GROUP = 'biz.redsoft.sample'
|
||||
}
|
||||
|
||||
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")
|
||||
|
||||
if [[ ! "$VERSION" =~ ^[0-9]+(.[0-9]+)*(-[A-Za-z]+)?$ ]]; then
|
||||
echo "Invalid version format: $VERSION" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "$VERSION"
|
||||
''',
|
||||
returnStdout: true
|
||||
).trim()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Make gradlew executable') {
|
||||
steps {
|
||||
sh 'chmod +x ./gradlew'
|
||||
}
|
||||
}
|
||||
|
||||
stage('Build with Gradle') {
|
||||
steps {
|
||||
sh './gradlew clean'
|
||||
sh './gradlew nTDC nbackup build copyDist publish dockerFile dockerUD rdbDockerFile'
|
||||
}
|
||||
}
|
||||
|
||||
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 REPO_NAME = "${env.PRODUCT_GROUP.toLowerCase()}/${env.PRODUCT_NAME.toLowerCase()}"
|
||||
def appImage = "${env.REGISTRY}/${REPO_NAME}:${env.VERSION}"
|
||||
sh "cd build/docker && docker build -t ${appImage} ."
|
||||
sh "docker push ${appImage}"
|
||||
|
||||
def rdbImage = "${env.REGISTRY}/${REPO_NAME}-db:${env.VERSION}"
|
||||
sh "cd build/docker && docker build -t ${rdbImage} ."
|
||||
sh "docker push ${rdbImage}"
|
||||
|
||||
def udbImage = "${env.REGISTRY}/${REPO_NAME}-update-db:${env.VERSION}"
|
||||
sh "cd build/docker && docker build -t ${udbImage} ."
|
||||
sh "docker push ${udbImage}"
|
||||
|
||||
docker logout ${env.REGISTRY}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
post {
|
||||
success {
|
||||
echo "Проект ${env.PRODUCT_NAME} успешно собран на версии ${env.VERSION}"
|
||||
}
|
||||
failure {
|
||||
echo "Проект ${env.PRODUCT_NAME} не собрался на версии ${env.VERSION}!"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user