name: "Terraform" on: push: branches: - master pull_request: jobs: terraform: name: "Terraform" runs-on: ubuntu-latest defaults: run: working-directory: 07-managing-multiple-environments/file-structure/staging steps: - name: Checkout uses: actions/checkout@v2 - name: Setup Terraform uses: hashicorp/setup-terraform@v1 with: terraform_version: 0.15.4 - name: Terraform Format id: fmt run: terraform fmt -check - name: Terraform Init id: init run: terraform init # - name: Terraform Plan # id: plan # if: github.event_name == 'pull_request' # run: terraform plan -no-color # continue-on-error: true # - uses: actions/github-script@0.9.0 # if: github.event_name == 'pull_request' # env: # PLAN: "terraform\n${{ steps.plan.outputs.stdout }}" # with: # github-token: ${{ secrets.GITHUB_TOKEN }} # script: | # const output = `#### Terraform Format and Style 🖌\`${{ steps.fmt.outcome }}\` # #### Terraform Initialization ⚙️\`${{ steps.init.outcome }}\` # #### Terraform Plan 📖\`${{ steps.plan.outcome }}\` #
Show Plan # \`\`\`${process.env.PLAN}\`\`\` #
# *Pusher: @${{ github.actor }}, Action: \`${{ github.event_name }}\`*`; # github.issues.createComment({ # issue_number: context.issue.number, # owner: context.repo.owner, # repo: context.repo.repo, # body: output # }) # - name: Terraform Plan Status # if: steps.plan.outcome == 'failure' # run: exit 1 # - name: Terraform Apply # if: github.ref == 'refs/heads/master' && github.event_name == 'push' # run: terraform apply -auto-approve