Skip to content

Instantly share code, notes, and snippets.

@rajendraprasad9
Forked from gazoakley/Jenkinsfile
Created December 23, 2020 15:20
Show Gist options
  • Select an option

  • Save rajendraprasad9/bf078dd43170738ae5a79f27695efd5b to your computer and use it in GitHub Desktop.

Select an option

Save rajendraprasad9/bf078dd43170738ae5a79f27695efd5b to your computer and use it in GitHub Desktop.

Revisions

  1. @gazoakley gazoakley revised this gist Mar 26, 2020. 1 changed file with 8 additions and 2 deletions.
    10 changes: 8 additions & 2 deletions Jenkinsfile
    Original file line number Diff line number Diff line change
    @@ -1,6 +1,12 @@
    pipeline {
    agent any

    parameters {
    string(name: 'environment', defaultValue: 'default', description: 'Workspace/environment file to use for deployment')
    string(name: 'version', defaultValue: '', description: 'Version variable to pass to Terraform')
    booleanParam(name: 'autoApprove', defaultValue: false, description: 'Automatically run apply after generating plan?')
    }

    environment {
    AWS_ACCESS_KEY_ID = credentials('AWS_ACCESS_KEY_ID')
    AWS_SECRET_ACCESS_KEY = credentials('AWS_SECRET_ACCESS_KEY')
    @@ -11,11 +17,11 @@ pipeline {
    stage('Plan') {
    steps {
    script {
    currentBuild.displayName = "${version}"
    currentBuild.displayName = params.version
    }
    sh 'terraform init -input=false'
    sh 'terraform workspace select ${environment}'
    sh "terraform plan -input=false -out tfplan -var 'version=${version}' --var-file=environments/${environment}.tfvars"
    sh "terraform plan -input=false -out tfplan -var 'version=${params.version}' --var-file=environments/${params.environment}.tfvars"
    sh 'terraform show -no-color tfplan > tfplan.txt'
    }
    }
  2. @gazoakley gazoakley created this gist Jun 20, 2018.
    51 changes: 51 additions & 0 deletions Jenkinsfile
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,51 @@
    pipeline {
    agent any

    environment {
    AWS_ACCESS_KEY_ID = credentials('AWS_ACCESS_KEY_ID')
    AWS_SECRET_ACCESS_KEY = credentials('AWS_SECRET_ACCESS_KEY')
    TF_IN_AUTOMATION = '1'
    }

    stages {
    stage('Plan') {
    steps {
    script {
    currentBuild.displayName = "${version}"
    }
    sh 'terraform init -input=false'
    sh 'terraform workspace select ${environment}'
    sh "terraform plan -input=false -out tfplan -var 'version=${version}' --var-file=environments/${environment}.tfvars"
    sh 'terraform show -no-color tfplan > tfplan.txt'
    }
    }

    stage('Approval') {
    when {
    not {
    equals expected: true, actual: params.autoApprove
    }
    }

    steps {
    script {
    def plan = readFile 'tfplan.txt'
    input message: "Do you want to apply the plan?",
    parameters: [text(name: 'Plan', description: 'Please review the plan', defaultValue: plan)]
    }
    }
    }

    stage('Apply') {
    steps {
    sh "terraform apply -input=false tfplan"
    }
    }
    }

    post {
    always {
    archiveArtifacts artifacts: 'tfplan.txt'
    }
    }
    }