pipeline{ agent { label 'Node1' } stages { stage('Checkout SCM') { steps { echo "Checking out latest code from the Develop branch repo ${repo_name}" git url: 'https://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@github.com/ca-dmv/${repo_name}.git', branch: 'Develop' } } stage('Publish Asset to Exchange') { steps { script { currentBuild.displayName = "$repo_name" try { bat 'xcopy /y D:\\apache-maven-3.8.6\\conf\\dmv-maven-settings.xml .' echo "=============================================" echo "Installing Clean with Maven enforcing a check for missing releases and updated snapshots or remote repositories" echo "==============MAVEN CLEAN INSTALL STARTS============================" bat 'mvn clean install -U -e -DskipMunitTests=true' echo "==============MAVEN CLEAN INSTALL ENDS===============================" echo "==============MAVEN CLEAN DEPLOY STARTS===============================" bat 'mvn --settings dmv-maven-settings.xml clean deploy -e -DskipMunitTests=true' // & mvn test -Dmunit.test=MyTest1,MyTest2' } catch (err) { echo "Publication to Exchange failed, please check the asset version if it is already published or deployed in Exchange, if so, please bump up the asset version and redeploy" echo err.getMessage() //echo "Error detected, but we will continue." //need to handle error here if same version is being deployed exit } } } } stage('Deploy to DEV') { steps { script { bat 'mvn deploy --settings dmv-maven-settings.xml -DmuleDeploy -P DEV -e -DskipMunitTests=true -Dhttps.protocols=TLSv1.1,TLSv1.2 -Danypoint.platform.config.analytics.agent.enabled=true -DconnectedAppClientId=%connectedAppClientId% -DconnectedAppClientSecret=%connectedAppClientSecret%' echo 'Deployment to DEV is successful' } } } stage ('Deploy To QA'){ input{ message "Do you want to proceed for QA deployment?" } steps { bat 'mvn deploy --settings dmv-maven-settings.xml -DmuleDeploy -P QA -e -DskipMunitTests=true -Dhttps.protocols=TLSv1.1,TLSv1.2 -Danypoint.platform.config.analytics.agent.enabled=true -DconnectedAppClientId=%connectedAppClientId% -DconnectedAppClientSecret=%connectedAppClientSecret%' echo 'Deployment to QA is successful' } } stage ('Deploy To UAT'){ input{ message "Do you want to proceed for UAT deployment?" } steps { bat 'mvn deploy --settings dmv-maven-settings.xml -DmuleDeploy -P UAT -e -DskipMunitTests=true -Dhttps.protocols=TLSv1.1,TLSv1.2 -Danypoint.platform.config.analytics.agent.enabled=true -DconnectedAppClientId=%connectedAppClientId% -DconnectedAppClientSecret=%connectedAppClientSecret%' echo 'Deployment to UAT is successful' } } stage ('Deploy To PROD'){ input{ message "Do you want to proceed for PROD deployment?" } steps { bat 'mvn deploy --settings dmv-maven-settings.xml -DmuleDeploy -P PROD -e -DskipMunitTests=true -Dhttps.protocols=TLSv1.1,TLSv1.2 -Danypoint.platform.config.analytics.agent.enabled=true -DconnectedAppClientId=%connectedAppClientId% -DconnectedAppClientSecret=%connectedAppClientSecret%' echo 'Deployment to PROD is successful' } } //echo "==============MAVEN CLEAN DEPLOY ENDS===============================" } }