Skip to content

Commit 0a28f5b

Browse files
Refactor GitHub Actions workflows for improved clarity and consistency
1 parent 1032bd7 commit 0a28f5b

4 files changed

Lines changed: 40 additions & 17 deletions

File tree

.github/dependabot.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,4 @@ updates:
2525
assignees: ["frasermolyneux"]
2626
directory: "/"
2727
schedule:
28-
interval: weekly
28+
interval: "weekly"

.github/workflows/build-and-test.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,21 @@ jobs:
2020
dotnet-project: "XtremeIdiots.Portal.Repository.App"
2121
dotnet-version: 9.0.x
2222
src-folder: "src"
23+
24+
terraform-plan-dev:
25+
permissions:
26+
contents: read
27+
id-token: write
28+
runs-on: ubuntu-latest
29+
environment: Development
30+
concurrency:
31+
group: ${{ github.repository }}-dev
32+
steps:
33+
- uses: frasermolyneux/actions/terraform-plan@main
34+
with:
35+
terraform-folder: "terraform"
36+
terraform-var-file: "tfvars/dev.tfvars"
37+
terraform-backend-file: "backends/dev.backend.hcl"
38+
AZURE_CLIENT_ID: ${{ vars.AZURE_CLIENT_ID }}
39+
AZURE_TENANT_ID: ${{ vars.AZURE_TENANT_ID }}
40+
AZURE_SUBSCRIPTION_ID: ${{ vars.AZURE_SUBSCRIPTION_ID }}

.github/workflows/deploy-prd.yml

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
1-
name: Deploy Prod
1+
name: Deploy Prd
22

33
on:
4-
workflow_dispatch:
5-
schedule:
6-
- cron: "0 3 * * 4"
74
push:
85
branches:
96
- main
7+
workflow_dispatch:
8+
schedule:
9+
- cron: "0 3 * * 4"
1010

1111
permissions: {}
1212

13+
concurrency:
14+
group: ${{ github.workflow }}
15+
1316
jobs:
1417
build-and-test:
1518
permissions:
@@ -135,6 +138,10 @@ jobs:
135138
runs-on: ubuntu-latest
136139
concurrency:
137140
group: ${{ github.repository }}-prd
141+
if: |
142+
always() &&
143+
needs.terraform-plan-and-apply-prd.result == 'success' &&
144+
(needs.function-app-deploy-dev.result == 'success' || needs.function-app-deploy-dev.result == 'skipped')
138145
steps:
139146
- uses: frasermolyneux/actions/deploy-function-app@main
140147
with:

.github/workflows/destroy-environment.yml

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,17 @@ jobs:
1818
terraform-destroy:
1919
permissions:
2020
contents: read
21-
id-token: write # This is required for Az CLI Login
21+
id-token: write
2222
environment: ${{ inputs.environment == 'prd' && 'Production' || 'Development' }}
2323
runs-on: ubuntu-latest
24-
25-
concurrency: # Prevent multiple GitHub Actions invocations against stateful resources. e.g. Terraform state file / Database / Deployed Apps
24+
concurrency:
2625
group: ${{ github.repository }}-${{ inputs.environment }}
27-
2826
steps:
29-
- uses: frasermolyneux/actions/terraform-destroy@main
30-
with:
31-
terraform-folder: "terraform"
32-
terraform-var-file: ${{ inputs.environment == 'prd' && 'tfvars/prd.tfvars' || 'tfvars/dev.tfvars' }}
33-
terraform-backend-file: ${{ inputs.environment == 'prd' && 'backends/prd.backend.hcl' || 'backends/dev.backend.hcl' }}
34-
AZURE_CLIENT_ID: ${{ vars.AZURE_CLIENT_ID }}
35-
AZURE_TENANT_ID: ${{ vars.AZURE_TENANT_ID }}
36-
AZURE_SUBSCRIPTION_ID: ${{ vars.AZURE_SUBSCRIPTION_ID }}
27+
- uses: frasermolyneux/actions/terraform-destroy@main
28+
with:
29+
terraform-folder: "terraform"
30+
terraform-var-file: ${{ inputs.environment == 'prd' && 'tfvars/prd.tfvars' || 'tfvars/dev.tfvars' }}
31+
terraform-backend-file: ${{ inputs.environment == 'prd' && 'backends/prd.backend.hcl' || 'backends/dev.backend.hcl' }}
32+
AZURE_CLIENT_ID: ${{ vars.AZURE_CLIENT_ID }}
33+
AZURE_TENANT_ID: ${{ vars.AZURE_TENANT_ID }}
34+
AZURE_SUBSCRIPTION_ID: ${{ vars.AZURE_SUBSCRIPTION_ID }}

0 commit comments

Comments
 (0)