97 lines
3.9 KiB
Plaintext
97 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/maasdevops.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}")
|
|
for (rootFolder in functionMap.keySet()) {
|
|
def projects = functionMap.getAt(rootFolder)
|
|
//String[] elements = module.split(",");
|
|
//List<String> moduleList = Arrays.asList(elements);
|
|
//env = "${env}".toLowerCase()
|
|
|
|
if(environment != 'ALL'){
|
|
if(projects != ''){
|
|
sh "monaco -e $WORKSPACE/environment.yaml -se $environment -p $projects --dry-run rootFolder"
|
|
}else{
|
|
sh "monaco -e $WORKSPACE/environment.yaml -se $environment --dry-run rootFolder"
|
|
}
|
|
} else {
|
|
if(projects != ''){
|
|
sh "monaco -e $WORKSPACE/environment.yaml -p $projects --dry-run rootFolder"
|
|
} else{
|
|
sh "monaco -e $WORKSPACE/environment.yaml --dry-run rootFolder"
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
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}")
|
|
for (rootFolder in functionMap.keySet()) {
|
|
def projects = functionMap.getAt(rootFolder)
|
|
if(environment != 'ALL'){
|
|
if(project != ''){
|
|
sh "monaco -e $WORKSPACE/environment.yaml -se $environment -p $projects rootFolder"
|
|
} else{
|
|
sh "monaco -e $WORKSPACE/environment.yaml -se $environment rootFolder"
|
|
}
|
|
} else {
|
|
if(project != ''){
|
|
sh "monaco -e $WORKSPACE/environment.yaml -p $projects rootFolder"
|
|
} else{
|
|
sh "monaco -e $WORKSPACE/environment.yaml rootFolder"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
post {
|
|
always {
|
|
cleanWs()
|
|
}
|
|
}
|
|
}
|
|
|