176 lines
7.5 KiB
Groovy
176 lines
7.5 KiB
Groovy
def installRetryCount = 0
|
|
def exportRetryCount = 0
|
|
def checkRetryCount = 0
|
|
def checkRetryCountSec = 0
|
|
def bin = "terraform-provider-dynatrace_v1.30.1"
|
|
def file = "terraform-provider-dynatrace_1.30.1_linux_amd64.zip"
|
|
def link = "https://github.com/dynatrace-oss/terraform-provider-dynatrace/releases/download/v1.30.1/terraform-provider-dynatrace_1.30.1_linux_amd64.zip"
|
|
|
|
pipeline {
|
|
|
|
options {
|
|
ansiColor('xterm')
|
|
}
|
|
|
|
agent {label 'jaws-slaves'}
|
|
|
|
triggers {
|
|
cron('0 5 * * 0-7')
|
|
}
|
|
|
|
environment {
|
|
EUPROD_TOKEN_VAR = credentials('EUPROD_TOKEN_VAR')
|
|
EUPREPROD_TOKEN_VAR = credentials('EUPREPROD_TOKEN_VAR')
|
|
NAPROD_TOKEN_VAR = credentials('NAPROD_TOKEN_VAR')
|
|
NAPREPROD_TOKEN_VAR = credentials('NAPREPROD_TOKEN_VAR')
|
|
CNPROD_TOKEN_VAR = credentials('CNPROD_TOKEN_VAR')
|
|
CNPREPROD_TOKEN_VAR = credentials('CNPREPROD_TOKEN_VAR')
|
|
}
|
|
|
|
stages {
|
|
stage('Fetch Data') {
|
|
steps {
|
|
parallel 'Checkout Repositories': {
|
|
dir("/opt/workspace/coco_apm_dynatrace_terraform_backup/") {
|
|
retry(3) {
|
|
sleep(300*checkRetryCount)
|
|
script {
|
|
checkRetryCount = checkRetryCount + 1
|
|
}
|
|
git branch: "master",
|
|
credentialsId: "jaws_dynatrace_bitbuket_user",
|
|
url: "https://atc.bmwgroup.net/bitbucket/scm/opapm/coco_apm_dynatrace_terraform_backup.git"
|
|
}
|
|
}
|
|
dir("/opt/workspace/coco_apm_dynatrace_terraform_backup_exporter/") {
|
|
retry(3) {
|
|
sleep(300*checkRetryCountSec)
|
|
script {
|
|
checkRetryCountSec = checkRetryCountSec + 1
|
|
}
|
|
git branch: "master",
|
|
credentialsId: "jaws_dynatrace_bitbuket_user",
|
|
url: "https://atc.bmwgroup.net/bitbucket/scm/opapm/coco_apm_dynatrace_terraform_backup_exporter.git"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
stage('Checkout New Branch') {
|
|
steps{
|
|
script {
|
|
def now = new Date()
|
|
env.timestamp = now.format("yyMMdd-HHmm", TimeZone.getTimeZone('GMT'))
|
|
println env.timestamp
|
|
env.branch = env.timestamp+"-DynatraceConfigurationBackup"
|
|
dir("/opt/workspace/coco_apm_dynatrace_terraform_backup/") {
|
|
sh "git checkout -b \"${env.branch}\""
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
stage('Install Required Packages') {
|
|
steps {
|
|
dir("/opt/workspace/coco_apm_dynatrace_terraform_backup_exporter/") {
|
|
retry(3) {
|
|
sleep(300*installRetryCount)
|
|
script {
|
|
installRetryCount = installRetryCount+1
|
|
}
|
|
sh"""
|
|
pip3 install --user -r requirements.txt
|
|
wget $link
|
|
python3 unzip.py $file
|
|
ls -la
|
|
"""
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
stage('Execute Exporting Script') {
|
|
steps {
|
|
dir("/opt/workspace/coco_apm_dynatrace_terraform_backup_exporter/") {
|
|
retry(3) {
|
|
sleep(300*exportRetryCount)
|
|
script {
|
|
exportRetryCount = exportRetryCount + 1
|
|
sh "chmod 755 $bin"
|
|
sh "python3 export.py"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
stage('Move Configuration Files') {
|
|
steps {
|
|
dir("/opt/workspace/coco_apm_dynatrace_terraform_backup_exporter/") {
|
|
// move slo configuration file
|
|
sh'''
|
|
ls -la
|
|
mv /opt/workspace/coco_apm_dynatrace_terraform_backup_exporter/output/* /opt/workspace/coco_apm_dynatrace_terraform_backup/
|
|
'''
|
|
}
|
|
}
|
|
}
|
|
|
|
stage('Push Changes') {
|
|
steps {
|
|
withCredentials([gitUsernamePassword(credentialsId: "jaws_dynatrace_bitbuket_user", gitToolName: 'Default')]) {
|
|
script {
|
|
dir("/opt/workspace/coco_apm_dynatrace_terraform_backup/") {
|
|
sh "git status"
|
|
sh "git add ."
|
|
sh "git commit -m \"${env.timestamp}\""
|
|
sh "git push origin ${env.branch}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// stage('Send Report') {
|
|
// steps {
|
|
// script {
|
|
// dir("/opt/workspace/qm_report/") {
|
|
// try {
|
|
// emailext subject: "BackUp ${env.JOB_NAME}",
|
|
// mimeType: 'text/html',
|
|
// body: "BackUp successful!",
|
|
// // to: 'michaela.jaeger@bmw.de, OOC-Support@bmwgroup.com, Andreas.DA.Danzer@partner.bmw.de',
|
|
// // to: 'rene.forstner@nttdata.com, Andreas.DA.Danzer@partner.bmw.de, linnea.bickeboeller@partner.bmwgroup.com',
|
|
// // to: 'rene.forstner@nttdata.com, stephan.oertelt@bmw.de, Mohammed.Abadel@bmw.de, michaela.jaeger@bmw.de',
|
|
// // to: 'rene.forstner@nttdata.com, ermis.wieger@nttdata.com, patryk.gudalewicz.bp@nttdata.com',
|
|
// // to: 'patryk.gudalewicz.bp@nttdata.com',
|
|
// // to: 'rene.forstner@nttdata.com, ermis.wieger@nttdata.com, arnel.arnautovic@nttdata.com, patryk.gudalewicz.bp@nttdata.com, stephan.oertelt@bmw.de, Mohammed.Abadel@bmw.de, michaela.jaeger@bmw.de, OOC-Support@bmwgroup.com, Andreas.DB.Danzer@bmwgroup.com',
|
|
// to: 'Andreas.DB.Danzer@bmwgroup.com, Arnel.Arnautovic@nttdata.com, Ermis.Wieger@nttdata.com, ops-xibix@list.bmw.com, omo-xibix@list.bmw.com, omo@bmwgroup.com',
|
|
// replyTo: 'coco-apm@bmw.de'
|
|
// } catch ( mailExc ) {
|
|
// echo "Sending Email Failed: ${mailExc}"
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
}
|
|
|
|
post {
|
|
failure {
|
|
emailext subject: "${env.JOB_NAME} build ${env.BUILD_ID} failed",
|
|
body: "BackUp failed, see logs for details: ${env.BUILD_URL}",
|
|
to: 'Arnel.Arnautovic@nttdata.com, ops-xibix@list.bmw.com, omo-xibix@list.bmw.com, omo@bmwgroup.com'
|
|
// to post to the teams channel "0 - APM Service Desk" just uncomment the following command:
|
|
// office365ConnectorSend webhookUrl: "https://bmwgroup.webhook.office.com/webhookb2/483edc00-c925-4672-8088-8299a0139fca@ce849bab-cc1c-465b-b62e-18f07c9ac198/JenkinsCI/9aca6923685b40f794134853fcbe88f1/ff31bcee-96b3-4481-9bd8-4f74180b263b",
|
|
// message: "QM report failed, see logs for details: ${env.BUILD_URL}",
|
|
// status: 'Failure',
|
|
// color: "d00000"
|
|
}
|
|
always {
|
|
cleanWs()
|
|
}
|
|
}
|
|
}
|