From 0c65c5897c9fb9cb2fb30c74b43fbf740dacea0d Mon Sep 17 00:00:00 2001 From: Sylvain Gibier Date: Fri, 16 Jun 2023 16:50:35 +0200 Subject: [PATCH] wip - jenkins de merde. --- environments/aws/eu-west-1/int/Jenkinsfile | 61 ++++++++++++++++++++-- 1 file changed, 56 insertions(+), 5 deletions(-) diff --git a/environments/aws/eu-west-1/int/Jenkinsfile b/environments/aws/eu-west-1/int/Jenkinsfile index 9ce86db..d7f9609 100644 --- a/environments/aws/eu-west-1/int/Jenkinsfile +++ b/environments/aws/eu-west-1/int/Jenkinsfile @@ -1,8 +1,8 @@ String cloud_provider = "aws" String aws_region = "eu-west-1" -String stage = "int" -String aws_access_credentials = "fdc_$aws_region_$stage_infrastructure.automation.user" -String dynatrace_api_toke_credentials = "api_token_dynatrace_$aws_region_$stage" +String default_stage = "int" +String aws_access_credentials = "fdc_${aws_region}_${default_stage}_infrastructure.automation.user" +String dynatrace_api_token_credentials = "api_token_dynatrace_${aws_region}_${default_stage}" pipeline { @@ -20,10 +20,10 @@ pipeline { AWS_SECRET_ACCESS_KEY = "${env.AWS_ID_PSW}" AWS_REGION = "${aws_region}" - STAGE = "${stage}" + STAGE = "${default_stage}" CLOUD_PROVIDER = "${cloud_provider}" - API_TOKEN = credentials("${dynatrace_api_toke_credentials}") + API_TOKEN = credentials("${dynatrace_api_token_credentials}") TF_VAR_dt_api_token = "${env.API_TOKEN}" } @@ -50,6 +50,57 @@ pipeline { } } + stage('Terraform plan') { + steps { + sshagent(credentials: ['sofa-user-automation']) { + container('terraform') { + script { + + sh "cd environments/${CLOUD_PROVIDER}/${AWS_REGION}/${STAGE} " + env.PLAN_STATUS = sh(script: "terraform plan -out=.terraform/plan.out -input=false -detailed-exitcode", returnStatus: true) + if (env.PLAN_STATUS == "1") { + currentBuild.result = "FAILURE" + error('Aborting the build.') + return + } + + } + } + } + } + } + + stage('Interactive') { + when { + allOf { + expression { env.PLAN_STATUS == "2" } + } + } + steps { + timeout(time: 15, unit: "MINUTES") { + input "Is this plan acceptable?" + milestone 1 + } + } + } + + stage("terraform apply") { + when { + allOf { + expression { env.PLAN_STATUS == "2" } + } + } + steps { + container('terraform') { + sshagent(credentials: ['sofa-user-automation']) { + script { + sh "cd environments/${CLOUD_PROVIDER}/${AWS_REGION}/${STAGE} " + sh("terraform apply -input=false .terraform/plan.out") + } + } + } + } + } } post {