Model/.github/workflows/deploy_terraform.yml

64 lines
No EOL
2.1 KiB
YAML

name: Deploy terraform stack
on:
push:
branches:
- "**"
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Setup AWS credentials file
run: |
mkdir -p ~/.aws
echo "[DevAdmin]" > ~/.aws/credentials
echo "aws_access_key_id = ${{ secrets.DEV_AWS_ACCESS_KEY_ID }}" >> ~/.aws/credentials
echo "aws_secret_access_key = ${{ secrets.DEV_AWS_SECRET_ACCESS_KEY }}" >> ~/.aws/credentials
echo "[ProdAdmin]" >> ~/.aws/credentials
echo "aws_access_key_id = ${{ secrets.PROD_AWS_ACCESS_KEY_ID }}" >> ~/.aws/credentials
echo "aws_secret_access_key = ${{ secrets.PROD_AWS_SECRET_ACCESS_KEY }}" >> ~/.aws/credentials
- name: Setup AWS config file
run: |
echo "[profile DevAdmin]" > ~/.aws/config
echo "region = eu-west-2" >> ~/.aws/config
echo "[profile ProdAdmin]" >> ~/.aws/config
echo "region = eu-west-2" >> ~/.aws/config
- name: Setup Terraform
uses: hashicorp/setup-terraform@v1
with:
terraform_version: 1.5.2
- name: Configure AWS credentials (DevAdmin)
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.DEV_AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.DEV_AWS_SECRET_ACCESS_KEY }}
aws-region: eu-west-2
env:
AWS_PROFILE: "DevAdmin"
# Deploy shared terrform things
- name: Terraform Init
run: cd infrastructure/terraform/shared && terraform init
- name: Terraform Workspace
run: |
cd infrastructure/terraform/shared
terraform workspace select dev || terraform workspace new dev
- name: Terraform Plan (shared)
run: |
cd infrastructure/terraform/shared
terraform plan -var-file=dev.tfvars
# only run once
- name: Terraform Apply (shared)
run: |
cd infrastructure/terraform/shared
terraform apply -auto-approve -var-file=dev.tfvars