From 81403a0d672e4d6db352f2915ad6c166e26f50e9 Mon Sep 17 00:00:00 2001 From: qxz0v5y Date: Tue, 6 Apr 2021 12:18:09 +0530 Subject: [PATCH] CICD-1367 [Testing] updated the jenkinsfile --- Jenkinsfile | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..1a1280b --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,96 @@ + 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}") + for (rootFolder in functionMap.keySet()) { + def projects = functionMap.getAt(rootFolder) + + if(environment != 'ALL'){ + if(projects != ''){ + sh "monaco -e $WORKSPACE/environment.yaml -se $environment -p $projects --dry-run $WORKSPACE/$rootFolder" + } else{ + sh "cd $rootFolder && monaco -e $WORKSPACE/environment.yaml -se $environment --dry-run" + } + } else { + if(projects != ''){ + sh "monaco -e $WORKSPACE/environment.yaml -p $projects --dry-run $WORKSPACE/$rootFolder" + } else{ + sh "cd $rootFolder && monaco -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}") + 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 -e $WORKSPACE/environment.yaml -se $environment" + } + } else { + if(projects != ''){ + sh "monaco -e $WORKSPACE/environment.yaml -p $projects $WORKSPACE/$rootFolder" + } else{ + sh "cd $rootFolder && monaco -e $WORKSPACE/environment.yaml" + } + } + } + } + } + } + + } + post { + always { + cleanWs() + } + } +} + \ No newline at end of file