diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..ca55bf0 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,115 @@ +pipeline +/* +DB Migration + +Requirements: + +Maven is Installed + +Java 21 is installed - variable JAVA_21_HOME is set + +*/ +{ + agent any + environment { + AAA = 'aaa' + } + stages + { + stage('Build') + { + steps { + + echo "*** Building ${env.JOB_NAME} ***" + sh ''' + #!/bin/bash + echo JOB_NAME=$JOB_NAME + + if [ -z "$JAVA_21_HOME" ] + then + echo "KO : Variable JAVA_21_HOME is empty. You fix this issue by adding this variable to configuration of Jenkins." + exit 1 + else + echo "OK : Variable JAVA_21_HOME is NOT empty" + fi + export JAVA_HOME=$JAVA_21_HOME + case $BRANCH_NAME in + + master | deploy_prod) + mvn clean install + ;; + + develop | jenkins | deploy_test) + echo Branch $BRANCH_NAME is supported. Continuing. + version=`mvn help:evaluate -Dexpression=project.version -q -DforceStdout` + echo version=$version + case "$version" in + *"SNAPSHOT"*) echo echo version is OK ;; + * ) echo echo "You cannot build releases on Jenkins, only snapshots!"&&exit 1 ;; + esac + mvn clean deploy + ;; + + *) + echo Branch $BRANCH_NAME is not supported. A failure happened. Exiting. + exit 1 + ;; + esac + + echo "Build of $JOB_NAME was successful" + ''' + } + } + + stage('Deploy') + { + steps { + echo "*** Deploying ${env.JOB_NAME} ***" + + sh ''' + #!/bin/bash + + echo "Nothing to do" + exit + + case $BRANCH_NAME in + + master | deploy_prod) + echo Branch $BRANCH_NAME is supported. Continuing. + TOMCAT_HOME=$TOMCAT10_HOME + systemdService=tomcat10 + ;; + + develop | jenkins | deploy_test) + echo Branch $BRANCH_NAME is supported. Continuing. + TOMCAT_HOME=$TOMCAT10_TEST_HOME + systemdService=tomcat10test + ;; + + *) + echo Branch $BRANCH_NAME is not supported. A failure happened. Exiting. + exit 1 + ;; + esac + + ''' + + } + } + } + post { + always { + script { + env.color = "${currentBuild.currentResult == 'SUCCESS' ? 'green' : 'red'}" + } + + echo 'Sending e-mail.' + sh "printenv | sort" + emailext body: "${currentBuild.currentResult} - ${env.JOB_NAME} (#${env.BUILD_NUMBER})
", + recipientProviders: [[$class: 'DevelopersRecipientProvider'], [$class: 'RequesterRecipientProvider']], + subject: "Jenkins Build - ${currentBuild.currentResult} - $JOB_NAME (#$BUILD_NUMBER)" + + } + } +} + diff --git a/pom.xml b/pom.xml index e78b923..fde9a59 100644 --- a/pom.xml +++ b/pom.xml @@ -25,7 +25,7 @@ org.nanoboot.essential nanoboot-parent - 0.1.0 + 0.1.1-SNAPSHOT org.nanoboot.tools.dbmigration @@ -40,7 +40,7 @@ 0.1.1-SNAPSHOT UTF-8 true - 2.0.0 + 2.0.1-SNAPSHOT db-migration-core