diff --git a/Jenkinsfile b/Jenkinsfile index e14691b..23d4995 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -5,7 +5,6 @@ pipeline { REGISTRY = 'src.red-soft.ru' PRODUCT_NAME = 'sample' PRODUCT_GROUP = 'biz.redsoft.sample' - VERSION = '' } stages { @@ -14,7 +13,27 @@ pipeline { 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 { @@ -52,7 +71,6 @@ pipeline { echo "$PASS" | docker login --username "$USER" --password-stdin $REGISTRY ''' def REPO_NAME = "${env.PRODUCT_GROUP.toLowerCase()}/${env.PRODUCT_NAME.toLowerCase()}" - sh 'echo $VERSION' def appImage = "${env.REGISTRY}/${REPO_NAME}:${env.VERSION}" sh "cd build/docker && docker build -t ${appImage} ." sh "docker push ${appImage}"