pipeline { agent any parameters { booleanParam(name: 'RUN_DEPLOY', defaultValue: true, description: 'true: run deploy / false: run destory') } environment { AWS_ACCESS_KEY_ID = credentials('aws-access-key-id') // JenkinsのCredentialで設定したキー AWS_SECRET_ACCESS_KEY = credentials('aws-secret-access-key') // 同じくCredentialで設定したシークレットキー } options { skipDefaultCheckout(true) } stages{ stage("checkout") { when { expression { return params.RUN_DEPLOY } } steps { // Iacコードを取得 checkout scm } } stage("terraform init") { when { expression { return params.RUN_DEPLOY } } steps { // 初期化 dir('CMDB'){ sh "terraform init" } } } stage("terraform plan") { when { expression { return params.RUN_DEPLOY } } steps { // 実行計画 dir('CMDB'){ sh "terraform plan -out=plan.out" } } } stage("terraform apply") { when { expression { return params.RUN_DEPLOY } } steps { // 実行 dir('CMDB'){ sh "terraform apply plan.out" } } } stage("terraform destroy") { when { expression { return !params.RUN_DEPLOY } } steps { dir('CMDB') { sh "terraform destroy -auto-approve" } } } } }