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