Add build and deploy actions. #1
42
.github/workflows/check.yml
vendored
42
.github/workflows/check.yml
vendored
@@ -1,42 +0,0 @@
|
||||
name: Quality Assurance
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
|
||||
jobs:
|
||||
terraform:
|
||||
name: Ensure Sound Infrastructure
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout to Repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Set-up Terraform
|
||||
uses: hashicorp/setup-terraform@v2
|
||||
|
||||
- name: Format Terraform
|
||||
run: |
|
||||
cd terraform
|
||||
terraform fmt -check
|
||||
|
||||
- name: Initialize Terraform Back-end
|
||||
env:
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
run: |
|
||||
cd terraform
|
||||
terraform init
|
||||
|
||||
- name: Terraform Plan
|
||||
env:
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
run: |
|
||||
cd terraform
|
||||
terraform plan -out=tfplan -no-color
|
||||
56
.github/workflows/deploy.yml
vendored
Normal file
56
.github/workflows/deploy.yml
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
name: Build and Deploy Architecture
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
|
||||
jobs:
|
||||
terraform:
|
||||
name: Deploy Infrastructure
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout to Repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Set-up Terraform
|
||||
uses: hashicorp/setup-terraform@v2
|
||||
|
||||
- name: Format Terraform
|
||||
run: terraform fmt -check
|
||||
working-directory: ./terraform
|
||||
|
||||
- name: Initialize Terraform Back-end
|
||||
env:
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
run: terraform init
|
||||
working-directory: ./terraform
|
||||
|
||||
- name: Terraform Plan
|
||||
env:
|
||||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
run: terraform plan -out=tfplan -no-color
|
||||
working-directory: ./terraform
|
||||
|
||||
- name: Check if there are changes
|
||||
id: check_changes
|
||||
run: |
|
||||
if [ -n "$(terraform show -no-color tfplan | grep -E 'No changes.')" ]; then
|
||||
echo "No changes detected."
|
||||
echo "::set-output name=changes::false"
|
||||
else
|
||||
echo "Changes detected."
|
||||
echo "::set-output name=changes::true"
|
||||
fi
|
||||
working-directory: ./terraform
|
||||
|
||||
- name: Terraform Apply
|
||||
if: ${{ (steps.check_changes.outputs.changes == 'true') && (github.ref == 'refs/heads/master') }}
|
||||
run: terraform apply -auto-approve tfplan
|
||||
working-directory: ./terraform
|
||||
Reference in New Issue
Block a user