Skip to content

Update build.yml

Update build.yml #48

Workflow file for this run

name: 'Terraform build'
on:
push:
workflow_dispatch:
inputs:
name:
description: "Manual deploy"
default: "Manual deploy"
env:
TF_CLOUD_ORGANIZATION: "${{ vars.BMB_TF_ORGANIZATION }}"
TF_API_TOKEN: "${{ secrets.TF_API_TOKEN }}"
TF_WORKSPACE: "${{ vars.TF_WORKSPACE }}"
CONFIG_DIRECTORY: "./"
permissions:
contents: read
jobs:
test:
name: 'Test'
runs-on: ubuntu-latest
environment: dev
defaults:
run:
shell: bash
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Terraform
uses: hashicorp/setup-terraform@v3
with:
cli_config_credentials_token: ${{ secrets.TF_API_TOKEN }}
- name: Terraform Init
run: terraform init -upgrade
- name: Terraform Test
if: github.event_name == 'push'
run: terraform test
sonarcloud:
needs: [test]
if: github.event_name != 'pull_request' || github.ref == 'refs/heads/main'
name: SonarCloud
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: SonarCloud Scan
uses: SonarSource/sonarcloud-github-action@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
deploy:
needs: [test]
if: github.ref == 'refs/heads/main'
name: "Terraform Apply"
runs-on: ubuntu-latest
environment: dev
permissions:
contents: read
outputs:
CONFIG_VERSION: ${{ steps.apply-upload.outputs.configuration_version_id }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Create .auto.tfvars file
run: |
cat <<EOF > eks.auto.tfvars
user_pool_name = "${{ vars.BMB_USER_POOL_NAME }}"
EOF
- name: Upload Configuration
uses: hashicorp/tfc-workflows-github/actions/upload-configuration@v1.3.1
id: apply-upload
with:
workspace: ${{ env.TF_WORKSPACE }}
directory: ${{ env.CONFIG_DIRECTORY }}
- name: Create Apply Run
uses: hashicorp/tfc-workflows-github/actions/create-run@v1.3.1
id: apply-run
with:
workspace: ${{ env.TF_WORKSPACE }}
configuration_version: ${{ steps.apply-upload.outputs.configuration_version_id }}
message: "Create Run from GitHub Actions CI ${{ github.sha }}"
- uses: hashicorp/tfc-workflows-github/actions/apply-run@v1.3.1
if: ${{ vars.TF_AUTO_APPROVE == 'true' }}
id: apply
with:
run: ${{ steps.apply-run.outputs.run_id }}
comment: "Confirmed from GitHub Actions CI ${{ github.sha }}"
destroy-plan:
name: "Create terraform destroy plan"
needs: [deploy]
runs-on: ubuntu-latest
steps:
- name: Create destroy plan
uses: hashicorp/tfc-workflows-github/actions/create-run@v1.3.1
id: destroy-plan
with:
workspace: "${{ vars.TF_WORKSPACE }}"
configuration_version: "${{ needs.deploy.outputs.CONFIG_VERSION }}"
message: "Create Destroy run from GitHub Actions CI ${{ github.sha }}"
is_destroy: true