Add build and deploy actions. #1

Open
max wants to merge 19 commits from feat/actions into main
2 changed files with 56 additions and 42 deletions
Showing only changes of commit 804743d2df - Show all commits

View File

@@ -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
View 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