end test #21
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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: echo "step 1" | ||
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: echo "step 2" | ||
plan: | ||
name: Terraform Plan | ||
runs-on: ubuntu-latest | ||
needs: validate | ||
steps: | ||
- name: Checkout Code | ||
uses: actions/checkout@v2 | ||
- name: Run Terraform Validate | ||
working-directory: ${{ env.TF_WORKING_DIR }} | ||
run: echo "step 3" | ||
# - 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 | ||
--- | ||
name: Manual Deploy Stage | ||
on: | ||
workflow_dispatch: | ||
jobs: | ||
deploy: | ||
name: Deploy Stage | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v2 | ||
# - name: Download Plan Artifact | ||
# uses: actions/download-artifact@v2 | ||
# with: | ||
# name: tfplan.binary | ||
# path: ./terraform | ||
# - name: Set up Terraform | ||
# uses: hashicorp/setup-terraform@v2 | ||
# with: | ||
# terraform_version: "1.5.0" | ||
- name: Terraform Apply | ||
working-directory: ./terraform | ||
run: echo "TEST END" |