70 lines
1.7 KiB
Groovy
70 lines
1.7 KiB
Groovy
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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |