Skip to content

feat(plugins): sonar plugin added #19

feat(plugins): sonar plugin added

feat(plugins): sonar plugin added #19

Workflow file for this run

---
name: "Plan Backstage"
on: # yamllint disable-line rule:truthy
pull_request:
branches:
- main
paths:
- 'terraform/*'
- '.github/workflows/plan-backstage.yaml'
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
## run terraform plan
plan_poc:
name: Plan - POC
runs-on: ubuntu-latest
outputs:
plan_id: ${{ steps.workflow_vars.outputs.plan_id }}
permissions:
id-token: write
contents: read
pull-requests: write
steps:
- name: Checkout
uses: actions/checkout@v3
# install aws cli
- name: Install AWS CLI
shell: bash
run: ./scripts/dependencies/install-aws-cli.sh
continue-on-error: false
# install tfenv
- name: Install tfenv
shell: bash
run: ./scripts/dependencies/install-tfenv.sh
continue-on-error: false
# Setup plan id for plan exports
- name: Set outputs
id: workflow_vars
run: |
echo "plan_id=$(git rev-parse --short "$GITHUB_SHA")" >> $GITHUB_OUTPUT
# configure iam
- name: Configure IAM Role
uses: aws-actions/configure-aws-credentials@v2
with:
role-to-assume: ${{ secrets.POC_BACKSTAGE_DEPLOY_ARN }}
aws-region: us-east-1
continue-on-error: false
# initialize backend
- name: Initialize backend
shell: bash
run: |
./scripts/action-init-plan-apply.sh -i poc
continue-on-error: false
# Running plan
- name: Plan against Prod
id: poc_plan
shell: bash
run: |
./scripts/action-init-plan-apply.sh -p poc
continue-on-error: false
#publish plan to artifacts
- name: Publish Terraform Plan
uses: actions/upload-artifact@v3
with:
name: "poc-${{ steps.workflow_vars.outputs.plan_id }}.tfplan"
path: "terraform/poc-${{ steps.workflow_vars.outputs.plan_id }}.tfplan"
continue-on-error: false
- name: Update plan output to pr
uses: mshick/add-pr-comment@v2
with:
message-id: poc-tfplan
message-path: "terraform/poc-plan-output.txt"
continue-on-error: false
plan_prod:
name: Plan - Prod
runs-on: ubuntu-latest
outputs:
plan_id: ${{ steps.workflow_vars.outputs.plan_id }}
permissions:
id-token: write
contents: read
pull-requests: write
steps:
- name: Checkout
uses: actions/checkout@v3
# install aws cli
- name: Install AWS CLI
shell: bash
run: ./scripts/dependencies/install-aws-cli.sh
continue-on-error: false
# install tfenv
- name: Install tfenv
shell: bash
run: ./scripts/dependencies/install-tfenv.sh
continue-on-error: false
# Setup plan id for plan exports
- name: Set outputs
id: workflow_vars
run: |
echo "plan_id=$(git rev-parse --short "$GITHUB_SHA")" >> $GITHUB_OUTPUT
# configure iam
- name: Configure IAM Role
uses: aws-actions/configure-aws-credentials@v2
with:
role-to-assume: ${{ secrets.PROD_BACKSTAGE_DEPLOY_ARN }}
aws-region: us-east-1
continue-on-error: false
# initialize backend
- name: Initialize backend
shell: bash
run: |
./scripts/action-init-plan-apply.sh -i prod
continue-on-error: false
# Running plan
- name: Plan against Prod
id: prod_plan
shell: bash
run: |
./scripts/action-init-plan-apply.sh -p prod
continue-on-error: false
#publish plan to artifacts
- name: Publish Terraform Plan
uses: actions/upload-artifact@v3
with:
name: "prod-${{ steps.workflow_vars.outputs.plan_id }}.tfplan"
path: "terraform/prod-${{ steps.workflow_vars.outputs.plan_id }}.tfplan"
continue-on-error: false
- name: Update plan output to pr
uses: mshick/add-pr-comment@v2
with:
message-id: prod-tfplan
message-path: "terraform/prod-plan-output.txt"
continue-on-error: false