Start Script via Terraform #752
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: 'Start Script via Terraform' | |
on: | |
workflow_dispatch: | |
schedule: | |
- cron: '0 16 * * *' # Every day at 4:00pm UTC (12:00pm Eastern) | |
jobs: | |
terraform: | |
runs-on: ubuntu-latest | |
environment: crunchy-backups | |
strategy: | |
matrix: | |
backend: [aspiredu-prd-a, aspiredu-prd-b, aspiredu-prd-c, aspiredu-prd-d, aspiredu-prd-e, aspiredu-prd-g, aspiredu-prd-h, aspiredu-prd-i, aspiredu-prd-j, aspiredu-prd-k, aspiredu-prd-l, aspiredu-prd-m, aspireprod, aspiredu-ms] | |
working_dir: ["us-east"] | |
include: | |
- backend: "aspiredu-au" | |
working_dir: "au" | |
steps: | |
- name: Get current weekday | |
id: weekday | |
run: echo "current_day=$(date '+%A')" >> "$GITHUB_OUTPUT" | |
- name: Check weekday | |
if: ${{ steps.weekday.outputs.current_day != 'Saturday' }} | |
run: echo "This job will be skipped because it's not Saturday. It's ${{ steps.weekday.outputs.current_day }}." | |
- name: Checkout Commit | |
if: ${{ steps.weekday.outputs.current_day == 'Saturday' }} | |
uses: actions/checkout@v3 | |
- name: Deploy With Terraform | |
if: ${{ steps.weekday.outputs.current_day == 'Saturday' }} | |
id: deployAttempt1 | |
uses: ./.github/actions/tf-deploy-composite | |
continue-on-error: true | |
with: | |
TERRAFORM_AWS_ACCESS_KEY_ID: ${{ secrets.TERRAFORM_AWS_ACCESS_KEY_ID }} | |
TERRAFORM_AWS_SECRET_ACCESS_KEY: ${{ secrets.TERRAFORM_AWS_SECRET_ACCESS_KEY }} | |
CRUNCHY_TEAM_ID: ${{ vars.CRUNCHY_TEAM_ID }} | |
CRUNCHY_API_KEY: ${{ secrets.CRUNCHY_API_KEY }} | |
ASPIRE_AWS_ACCESS_KEY_ID: ${{ secrets.ASPIRE_AWS_ACCESS_KEY_ID }} | |
ASPIRE_AWS_SECRET_ACCESS_KEY: ${{ secrets.ASPIRE_AWS_SECRET_ACCESS_KEY }} | |
GIT_PAT: ${{ secrets.GIT_PAT }} | |
SENTRY_DSN: ${{ secrets.SENTRY_DSN }} | |
backend: ${{ matrix.backend }} | |
WORKING_DIR: ${{ matrix.working_dir }} | |
- name: Deploy With Terraform Attempt 2 | |
id: deployAttempt2 | |
uses: ./.github/actions/tf-deploy-composite | |
if: ${{ steps.weekday.outputs.current_day == 'Saturday' && steps.deployAttempt1.outcome == 'failure' }} | |
continue-on-error: true | |
with: | |
TERRAFORM_AWS_ACCESS_KEY_ID: ${{ secrets.TERRAFORM_AWS_ACCESS_KEY_ID }} | |
TERRAFORM_AWS_SECRET_ACCESS_KEY: ${{ secrets.TERRAFORM_AWS_SECRET_ACCESS_KEY }} | |
CRUNCHY_TEAM_ID: ${{ vars.CRUNCHY_TEAM_ID }} | |
CRUNCHY_API_KEY: ${{ secrets.CRUNCHY_API_KEY }} | |
ASPIRE_AWS_ACCESS_KEY_ID: ${{ secrets.ASPIRE_AWS_ACCESS_KEY_ID }} | |
ASPIRE_AWS_SECRET_ACCESS_KEY: ${{ secrets.ASPIRE_AWS_SECRET_ACCESS_KEY }} | |
GIT_PAT: ${{ secrets.GIT_PAT }} | |
SENTRY_DSN: ${{ secrets.SENTRY_DSN }} | |
backend: ${{ matrix.backend }} | |
WORKING_DIR: ${{ matrix.working_dir }} | |
- name: Deploy With Terraform Attempt 3 | |
id: deployAttempt3 | |
uses: ./.github/actions/tf-deploy-composite | |
if: ${{ steps.weekday.outputs.current_day == 'Saturday' && steps.deployAttempt1.outcome == 'failure' && steps.deployAttempt2.outcome == 'failure' }} | |
continue-on-error: true | |
with: | |
TERRAFORM_AWS_ACCESS_KEY_ID: ${{ secrets.TERRAFORM_AWS_ACCESS_KEY_ID }} | |
TERRAFORM_AWS_SECRET_ACCESS_KEY: ${{ secrets.TERRAFORM_AWS_SECRET_ACCESS_KEY }} | |
CRUNCHY_TEAM_ID: ${{ vars.CRUNCHY_TEAM_ID }} | |
CRUNCHY_API_KEY: ${{ secrets.CRUNCHY_API_KEY }} | |
ASPIRE_AWS_ACCESS_KEY_ID: ${{ secrets.ASPIRE_AWS_ACCESS_KEY_ID }} | |
ASPIRE_AWS_SECRET_ACCESS_KEY: ${{ secrets.ASPIRE_AWS_SECRET_ACCESS_KEY }} | |
GIT_PAT: ${{ secrets.GIT_PAT }} | |
SENTRY_DSN: ${{ secrets.SENTRY_DSN }} | |
backend: ${{ matrix.backend }} | |
WORKING_DIR: ${{ matrix.working_dir }} | |
keepalive: | |
name: Keepalive Workflow | |
needs: terraform | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: 'keepalive' | |
- uses: gautamkrishnar/keepalive-workflow@v2 | |
with: | |
use_api: false |