Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions .github/actions/commit-terraform-lock-file/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: "Commit Terraform Lock File"
description: "Commit Terraform lock file."

runs:
using: "composite"
steps:
- shell: bash
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"

git add .terraform.lock.hcl

if git diff --staged --quiet; then
echo "No Terraform lock file changes."
exit 0
fi

git commit -m "chore: update terraform lock file"
git push
28 changes: 14 additions & 14 deletions .github/workflows/terraform-apply.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,34 +2,35 @@ name: "Terraform Apply"

on:
push:
branches:
- main
branches: [main]
paths-ignore:
- ".terraform.lock.hcl"

permissions:
contents: read
contents: write

jobs:
apply:
name: "Terraform Apply"
runs-on: ubuntu-latest

environment: production
env:
TF_CLI_ARGS: "-no-color"

steps:
- name: Checkout Repository
uses: actions/checkout@v6
- uses: actions/checkout@v6

- name: Setup Terraform
uses: hashicorp/setup-terraform@v4
- uses: hashicorp/setup-terraform@v4

- name: Terraform Init
- run: terraform init -backend-config="endpoints={s3=\"https://${CLOUDFLARE_ACCOUNT_ID}.r2.cloudflarestorage.com\"}"
env:
AWS_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }}
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
run: |
terraform init \
-backend-config="endpoints={s3=\"https://${CLOUDFLARE_ACCOUNT_ID}.r2.cloudflarestorage.com\"}"

- name: Terraform Apply
- uses: ./.github/actions/commit-terraform-lock-file

- run: terraform apply -auto-approve
env:
AWS_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }}
Expand All @@ -38,4 +39,3 @@ jobs:
TF_VAR_toropon_ip: ${{ secrets.TOROPON_IP }}
TF_VAR_argotunnel_cname_target: ${{ secrets.ARGOTUNNEL_CNAME_TARGET }}
TF_VAR_gh_pages_challenge_content: ${{ secrets.GH_PAGES_CHALLENGE_CONTENT }}
run: terraform apply -auto-approve -no-color
33 changes: 8 additions & 25 deletions .github/workflows/terraform-plan.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@ name: "Terraform Plan"

on:
pull_request:
branches:
- main
branches: [main]

permissions:
contents: read
Expand All @@ -12,30 +11,14 @@ jobs:
plan:
name: "Terraform Plan"
runs-on: ubuntu-latest

env:
TF_CLI_ARGS: "-no-color"

steps:
- name: Checkout Repository
uses: actions/checkout@v6
- uses: actions/checkout@v6

- name: Setup Terraform
uses: hashicorp/setup-terraform@v4
- uses: hashicorp/setup-terraform@v4

- name: Terraform Init
env:
AWS_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }}
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
run: |
terraform init \
-backend-config="endpoints={s3=\"https://${CLOUDFLARE_ACCOUNT_ID}.r2.cloudflarestorage.com\"}"
- run: terraform init -backend=false

- name: Terraform Plan
env:
AWS_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }}
TF_VAR_cloudflare_api_token: ${{ secrets.CLOUDFLARE_API_TOKEN }}
TF_VAR_cloudflare_account_id: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
TF_VAR_toropon_ip: ${{ secrets.TOROPON_IP }}
TF_VAR_argotunnel_cname_target: ${{ secrets.ARGOTUNNEL_CNAME_TARGET }}
TF_VAR_gh_pages_challenge_content: ${{ secrets.GH_PAGES_CHALLENGE_CONTENT }}
run: terraform plan -no-color
- run: terraform validate