maasglobal_cicdtest/Jenkinsfile_bkp

110 lines
3.9 KiB
Plaintext

pipeline {
options {
ansiColor('xterm')
}
agent{label 'jaws-slaves'}
environment {
//xxu26128_TOKEN = credentials('dynatrace_automation_token_emea_prod')
//qqk70169_TOKEN = credentials('dynatrace_automation_token_emea_preprod')
//wgv50241_TOKEN = credentials('dynatrace_automation_token_na_prod')
//onb44935_TOKEN = credentials('dynatrace_automation_token_na_preprod')
//CN_Prod_TOKEN = credentials('dynatrace_automation_token_cn_prod')
//CN_PreProd_TOKEN = credentials('dynatrace_automation_token_cn_preprod')
CICD_Testing_TOKEN = credentials('dynatrace_automation_testing_token')
}
stages {
stage('Checkout') {
steps {
git branch: '${branch}', credentialsId: 'jaws_dynatrace_bitbuket_user', url: 'https://atc.bmwgroup.net/bitbucket/scm/opapm/maasglobal_cicdtest.git'
}
}
stage('Install Monaco CLI') {
steps {
sh '''
wget "https://github.com/dynatrace-oss/dynatrace-monitoring-as-code/releases/download/v1.5.0/monaco-linux-amd64"
sudo cp monaco-linux-amd64 /usr/local/bin/monaco
sudo chmod +x /usr/local/bin/monaco
'''
}
}
stage('Monaco dry run') {
steps {
script {
Map functionMap = evaluate("${projectMap}")
if(functionMap == null){
if(environment != 'ALL'){
sh '''for d in ./*/ ; do (cd "$d" && monaco -v -e $WORKSPACE/environment.yaml -se $environment --dry-run ); done'''
} else{
sh '''for d in ./*/ ; do (cd "$d" && monaco -v -e $WORKSPACE/environment.yaml --dry-run ); done'''
}
} else{
for (rootFolder in functionMap.keySet()) {
def projects = functionMap.getAt(rootFolder)
if(environment != 'ALL'){
if(projects != ''){
sh "monaco -v -e $WORKSPACE/environment.yaml -se $environment -p $projects --dry-run $WORKSPACE/$rootFolder"
} else{
sh "cd $rootFolder && monaco -v -e $WORKSPACE/environment.yaml -se $environment --dry-run"
}
} else {
if(projects != ''){
sh "monaco -v -e $WORKSPACE/environment.yaml -p $projects --dry-run $WORKSPACE/$rootFolder"
} else{
sh "cd $rootFolder && monaco -v -e $WORKSPACE/environment.yaml --dry-run"
}
}
}
}
}
}
}
stage('Approval') {
steps {
script {
def userInput = input(id: 'confirm', message: 'Deploy dynatrace config?', parameters: [ [$class: 'BooleanParameterDefinition', defaultValue: true, description: 'Deploy dynatrace config', name: 'confirm'] ])
}
}
}
stage('Dynatrace config deployment') {
steps {
script {
Map functionMap = evaluate("${projectMap}")
if(functionMap == null){
if(environment != 'ALL'){
sh '''for d in ./*/ ; do (cd "$d" && monaco -v -e $WORKSPACE/environment.yaml -se $environment); done'''
} else{
sh '''for d in ./*/ ; do (cd "$d" && monaco -v -e $WORKSPACE/environment.yaml ); done'''
}
} else{
for (rootFolder in functionMap.keySet()) {
def projects = functionMap.getAt(rootFolder)
if(environment != 'ALL'){
if(projects != ''){
sh "monaco -v -e $WORKSPACE/environment.yaml -se $environment -p $projects $WORKSPACE/$rootFolder"
} else{
sh "cd $rootFolder && monaco -v -e $WORKSPACE/environment.yaml -se $environment"
}
} else {
if(projects != ''){
sh "monaco -v -e $WORKSPACE/environment.yaml -p $projects $WORKSPACE/$rootFolder"
} else{
sh "cd $rootFolder && monaco -v -e $WORKSPACE/environment.yaml"
}
}
}
}
}
}
}
}
post {
always {
cleanWs()
}
}
}