diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..275d5e2 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,82 @@ +pipeline { + agent any + + 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") + + 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 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}!" + } + } +} \ No newline at end of file diff --git a/build.gradle b/build.gradle index 5f91686..b5f0fca 100644 --- a/build.gradle +++ b/build.gradle @@ -23,7 +23,7 @@ ncore { sourceEncoding = 'UTF-8' } -group = 'biz.redsoft.<%%RESERVED_NAME%%>' +group = '<%%RESERVED_GROUPNAME%%>' repositories { maven { diff --git a/ncore-properties.xml b/ncore-properties.xml index e367d56..6421077 100644 --- a/ncore-properties.xml +++ b/ncore-properties.xml @@ -4,7 +4,8 @@ Configuration settings for ncore platform - <%%RESERVED_NAME%%> + <%%RESERVED_GROUPNAME%%> + <%%RESERVED_NAME%%> <%%RESERVED_NAME%%> ncore project diff --git a/src/main/java/biz/redsoft/sample/Product.java b/src/main/java/biz/redsoft/sample/Product.java index 4d0ee6c..32e4268 100644 --- a/src/main/java/biz/redsoft/sample/Product.java +++ b/src/main/java/biz/redsoft/sample/Product.java @@ -1,4 +1,4 @@ -package biz.redsoft.<%%RESERVED_NAME%%>; +package <%%RESERVED_GROUPNAME%%>; import biz.redsoft.ncore.system.application.Application; diff --git a/src/main/java/biz/redsoft/sample/Version.java b/src/main/java/biz/redsoft/sample/Version.java index 8c428ee..95cea54 100644 --- a/src/main/java/biz/redsoft/sample/Version.java +++ b/src/main/java/biz/redsoft/sample/Version.java @@ -1,4 +1,4 @@ -package biz.redsoft.<%%RESERVED_NAME%%>; +package <%%RESERVED_GROUPNAME%%>; import biz.redsoft.util.IncorrectVersionFormat; import biz.redsoft.util.VersionUtils; diff --git a/src/main/resources/META-INF/resources/VAADIN/themes/img/page_white_delete.png b/src/main/resources/META-INF/resources/VAADIN/themes/img/page_white_delete.png deleted file mode 100644 index 644935f..0000000 Binary files a/src/main/resources/META-INF/resources/VAADIN/themes/img/page_white_delete.png and /dev/null differ diff --git a/src/main/resources/META-INF/resources/VAADIN/themes/img/upload_file.gif b/src/main/resources/META-INF/resources/VAADIN/themes/img/upload_file.gif deleted file mode 100644 index 9bffce7..0000000 Binary files a/src/main/resources/META-INF/resources/VAADIN/themes/img/upload_file.gif and /dev/null differ diff --git a/src/main/webapp/WEB-INF/ncore-properties.xml b/src/main/webapp/WEB-INF/ncore-properties.xml index a64fdf7..1f55ecd 100644 --- a/src/main/webapp/WEB-INF/ncore-properties.xml +++ b/src/main/webapp/WEB-INF/ncore-properties.xml @@ -4,7 +4,8 @@ Configuration settings for ncore platform - <%%RESERVED_NAME%%> + <%%RESERVED_GROUPNAME%%> + <%%RESERVED_NAME%%> <%%RESERVED_NAME%%> ncore project diff --git a/src/test/java/biz/redsoft/sample/TomcatStarter.java b/src/test/java/biz/redsoft/sample/TomcatStarter.java index cc6f804..772526b 100644 --- a/src/test/java/biz/redsoft/sample/TomcatStarter.java +++ b/src/test/java/biz/redsoft/sample/TomcatStarter.java @@ -35,7 +35,7 @@ * exception statement from your version. */ -package biz.redsoft.<%%RESERVED_NAME%%>; +package <%%RESERVED_GROUPNAME%%>; import java.io.File; import java.io.IOException;