Skip to content

end test

end test #19

Workflow file for this run

name: Terraform CI/CD Pipeline
on:
push:
branches:
- main
pull_request:
branches:
- main
env:
TF_VERSION: "1.5.0"
TF_WORKING_DIR: "./terraform" # Adjust to your Terraform directory
jobs:
format:
name: Terraform Format
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v2
- name: Setup Terraform
uses: hashicorp/setup-terraform@v2
with:
terraform_version: ${{ env.TF_VERSION }}
- name: Run Terraform Format
run: terraform fmt -check -recursive
validate:
name: Terraform Validate
runs-on: ubuntu-latest
needs: format
steps:
- name: Checkout Code
uses: actions/checkout@v2
- name: Setup Terraform
uses: hashicorp/setup-terraform@v2
with:
terraform_version: ${{ env.TF_VERSION }}
- name: Run Terraform Validate
working-directory: ${{ env.TF_WORKING_DIR }}
run: terraform validate
plan:
name: Terraform Plan
runs-on: ubuntu-latest
needs: validate
steps:
- name: Checkout Code
uses: actions/checkout@v2
- name: Setup Terraform
uses: hashicorp/setup-terraform@v2
with:
terraform_version: ${{ env.TF_VERSION }}
- name: Terraform Init
working-directory: ${{ env.TF_WORKING_DIR }}
run: terraform init -input=false
- name: Terraform Plan
working-directory: ${{ env.TF_WORKING_DIR }}
run: terraform plan -out=tfplan.binary
- name: Show Terraform Plan
working-directory: ${{ env.TF_WORKING_DIR }}
run: terraform show -no-color tfplan.binary
manual-approval:
name: Manual Approval Before Apply
runs-on: ubuntu-latest
needs: plan
if: github.event_name == 'push' # Only require approval on main branch pushes
steps:
- name: Approval Needed
run: echo "Please review and approve before deploying."
apply:
name: Terraform Apply
runs-on: ubuntu-latest
needs: manual-approval
steps:
- name: Checkout Code
uses: actions/checkout@v2
- name: Terraform Init
working-directory: ${{ env.TF_WORKING_DIR }}
run: echo "SUCESSS"
# - name: Setup Terraform
# uses: hashicorp/setup-terraform@v2
# with:
# terraform_version: ${{ env.TF_VERSION }}
# - name: Terraform Init
# working-directory: ${{ env.TF_WORKING_DIR }}
# run: terraform init -input=false
# - name: Apply Terraform Plan
# working-directory: ${{ env.TF_WORKING_DIR }}
# run: terraform apply -auto-approve tfplan.binary