All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good
191 lines
10 KiB
Groovy
191 lines
10 KiB
Groovy
pipeline {
|
|
agent any
|
|
|
|
options {
|
|
buildDiscarder(logRotator(numToKeepStr: '10', artifactNumToKeepStr: '10'))
|
|
disableConcurrentBuilds()
|
|
}
|
|
|
|
stages {
|
|
stage('PreBuild Steps (Master)') {
|
|
when {
|
|
expression {
|
|
return env.GIT_BRANCH == "master"
|
|
}
|
|
}
|
|
steps {
|
|
echo "Creo version tag su Git"
|
|
bat 'build\\create_build_tag.bat'
|
|
}
|
|
}
|
|
stage('Maven Build') {
|
|
steps {
|
|
echo "${WORKSPACE}"
|
|
withMaven(traceability: true, maven: 'Maven 3.9.5', options: [artifactsPublisher(disabled: true)]) {
|
|
bat(script: 'mvn clean install -t toolchains-jenkins.xml', returnStdout: true)
|
|
archiveArtifacts(artifacts: 'ems-engine/target/ems-api.war', onlyIfSuccessful: true)
|
|
}
|
|
stash includes: 'ems-engine/target/ems-api.war,docker/**,Dockerfile', name: 'docker-files'
|
|
}
|
|
}
|
|
|
|
stage('Publish') {
|
|
parallel {
|
|
|
|
stage('Publish Develop') {
|
|
when {
|
|
expression {
|
|
return env.GIT_BRANCH == "develop"
|
|
}
|
|
}
|
|
stages {
|
|
stage('Update Tomcat 1') {
|
|
steps {
|
|
echo "Updating Tomcat9 from ${WORKSPACE}"
|
|
powershell returnStdout: true, script: "build\\update_tomcat.ps1 -serviceName \"Tomcat9\" -httpPort \"8081\" -updatedArtifactPath \"${WORKSPACE}\\ems-engine\\target\\ems-api.war\""
|
|
}
|
|
}
|
|
stage('Update Tomcat 2') {
|
|
steps {
|
|
echo "Updating Tomcat9 from ${WORKSPACE}"
|
|
powershell returnStdout: true, script: "build\\update_tomcat.ps1 -serviceName \"Tomcat9Backup\" -httpPort \"8082\" -updatedArtifactPath \"${WORKSPACE}\\ems-engine\\target\\ems-api.war\""
|
|
bat 'curl -k "https://devservices.studioml.it/ems-api/updateWMSApp?overrideForced=false"'
|
|
bat 'curl -k "https://devservices.studioml.it/ems-api/updateWMSApp?overrideForced=false&suffix=beta"'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
stage('Publish Master') {
|
|
when {
|
|
expression {
|
|
return env.GIT_BRANCH == "master"
|
|
}
|
|
}
|
|
stages {
|
|
stage('Update Tomcat 1') {
|
|
steps {
|
|
echo "Updating Tomcat9 from ${WORKSPACE}"
|
|
sshPublisher(publishers: [sshPublisherDesc(configName: 'Production Linux Tomcat Server (192.168.3.16)', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''sudo /usr/bin/systemctl stop tomcat9
|
|
rm -R tomcat9/webapps/ems-api
|
|
sudo /usr/bin/systemctl start tomcat9
|
|
|
|
/home/studioml/./wait_tomcat_startup.sh 8081''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/tomcat9/webapps', remoteDirectorySDF: false, removePrefix: 'ems-engine/target/', sourceFiles: 'ems-engine/target/*.war*')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
|
|
}
|
|
}
|
|
stage('Update Tomcat 2') {
|
|
steps {
|
|
echo "Updating Tomcat9 from ${WORKSPACE}"
|
|
sshPublisher(publishers: [sshPublisherDesc(configName: 'Production Linux Tomcat Server (192.168.3.16)', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''sudo /usr/bin/systemctl stop tomcat9backup
|
|
rm -R tomcat9backup/webapps/ems-api
|
|
sudo /usr/bin/systemctl start tomcat9backup
|
|
|
|
/home/studioml/./wait_tomcat_startup.sh 8082
|
|
|
|
sleep 10''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/tomcat9backup/webapps', remoteDirectorySDF: false, removePrefix: 'ems-engine/target/', sourceFiles: 'ems-engine/target/*.war*')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
|
|
bat 'curl -k "https://services.studioml.it/ems-api/updateWMSApp?overrideForced=false"'
|
|
bat 'curl -k "https://services.studioml.it/ems-api/updateWMSApp?overrideForced=false&suffix=beta"'
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
stage('Publish Branch on Azure') {
|
|
steps {
|
|
azureUpload fileShareName: 'storage-ci', filesPath: 'ems-engine/target/*.war*', removePrefixPath: 'ems-engine/target/', storageCredentialId: '83a86793-c1d6-4776-b20f-1ff652a57fee', storageType: 'filestorage', uploadArtifactsOnlyIfSuccessful: true, verbose: true, virtualPath: "ems-api/${env.GIT_BRANCH}"
|
|
}
|
|
}
|
|
|
|
stage('Docker Build') {
|
|
steps {
|
|
node('server-build') {
|
|
echo "Building Docker image"
|
|
unstash 'docker-files'
|
|
|
|
script {
|
|
def branchVersion = ""
|
|
|
|
if (env.GIT_BRANCH != "master") {
|
|
branchVersion = "-${env.GIT_BRANCH.toLowerCase().replace('/', '-')}"
|
|
}
|
|
|
|
bat "docker buildx build --platform linux/amd64,linux/arm64 --push -t \"git.studioml.it/integry/ems-api${branchVersion}:latest\" ."
|
|
|
|
//containerImageLink "git.studioml.it/integry/ems-api-${env.GIT_BRANCH.toLowerCase().replace('/', '-')}:latest}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
stage('Publish TypeScript modules') {
|
|
when {
|
|
expression {
|
|
return env.GIT_BRANCH == "master" || env.GIT_BRANCH == "develop"
|
|
}
|
|
}
|
|
steps {
|
|
script {
|
|
bat "IF EXIST IntegryManagementSystemTSModules RMDIR IntegryManagementSystemTSModules /S /Q"
|
|
|
|
// Clona la repository di destinazione
|
|
echo "Clonazione della repository di destinazione..."
|
|
bat 'git clone https://git.studioml.it/Integry/IntegryManagementSystemTSModules.git'
|
|
|
|
// Entra nella directory della repository di destinazione
|
|
dir('IntegryManagementSystemTSModules') {
|
|
if(env.GIT_BRANCH != "master") {
|
|
// Crea un nuovo branch se non è master o develop
|
|
bat "git checkout -b ${env.GIT_BRANCH} origin/${env.GIT_BRANCH}"
|
|
} else {
|
|
// Altrimenti, torna al branch master o develop
|
|
bat "git checkout ${env.GIT_BRANCH}"
|
|
}
|
|
|
|
//bat "git checkout -b ${env.GIT_BRANCH}"
|
|
bat "git pull origin ${env.GIT_BRANCH}"
|
|
|
|
// Copia i file .ts nella repository di destinazione
|
|
echo "Copia dei file .ts nella repository di destinazione..."
|
|
bat 'copy ..\\ts\\*.ts .'
|
|
|
|
// Aggiungi i file modificati
|
|
bat 'git add *.ts'
|
|
|
|
// Commit e push
|
|
bat 'git commit -m "Aggiornamento file .ts"'
|
|
bat 'git push https://git.studioml.it/Integry/IntegryManagementSystemTSModules.git --all'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
|
|
post {
|
|
success {
|
|
script {
|
|
if (env.GIT_BRANCH == "master" || env.GIT_BRANCH == "develop") {
|
|
office365ConnectorSend adaptiveCards: true, color: '#008000', message: 'EMS-API ` stato compilato con successo', status: 'SUCCESS', webhookUrl: 'https://prod-197.westeurope.logic.azure.com:443/workflows/69a7b8ee3c284175bd6da7127c7eb3cf/triggers/manual/paths/invoke?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=_-eMfvsQGkIidHWzzlhGFgiZG28ujHZ41QqzuqD9YGw'
|
|
}
|
|
}
|
|
}
|
|
unstable {
|
|
script {
|
|
if (env.GIT_BRANCH == "master" || env.GIT_BRANCH == "develop") {
|
|
office365ConnectorSend adaptiveCards: true, color: '#FFDE21', message: 'EMS-API ` INSTABILE', status: 'UNSTABLE', webhookUrl: 'https://prod-197.westeurope.logic.azure.com:443/workflows/69a7b8ee3c284175bd6da7127c7eb3cf/triggers/manual/paths/invoke?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=_-eMfvsQGkIidHWzzlhGFgiZG28ujHZ41QqzuqD9YGw'
|
|
}
|
|
}
|
|
}
|
|
failure {
|
|
script {
|
|
if (env.GIT_BRANCH == "master" || env.GIT_BRANCH == "develop") {
|
|
office365ConnectorSend adaptiveCards: true, color: '#FF2C2C', message: 'Errore di compilazione su EMS-API', status: 'FAILURE', webhookUrl: 'https://prod-197.westeurope.logic.azure.com:443/workflows/69a7b8ee3c284175bd6da7127c7eb3cf/triggers/manual/paths/invoke?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=_-eMfvsQGkIidHWzzlhGFgiZG28ujHZ41QqzuqD9YGw'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |