@@ -2,30 +2,28 @@ name: terraform-oidc
22
33on :
44 push :
5- branches : ["main"]
5+ paths :
6+ - " infra/workload/01-local-state/**"
7+ - " .github/workflows/terraform.yml"
68 workflow_dispatch :
79
810permissions :
911 id-token : write
1012 contents : read
1113
1214env :
13- TF_IN_AUTOMATION : true
14- TF_INPUT : false
15+ TF_WORKING_DIR : infra/workload/01-local-state
16+ ARM_USE_OIDC : " true"
17+ ARM_CLIENT_ID : ${{ vars.AZURE_CLIENT_ID }}
18+ ARM_TENANT_ID : ${{ vars.AZURE_TENANT_ID }}
19+ ARM_SUBSCRIPTION_ID : ${{ vars.AZURE_SUBSCRIPTION_ID }}
1520
1621jobs :
1722 plan :
18- name : plan
1923 runs-on : ubuntu-latest
2024 defaults :
2125 run :
22- working-directory : infra/workload/01-local-state
23- shell : bash
24- env :
25- ARM_USE_OIDC : true
26- ARM_CLIENT_ID : ${{ vars.AZURE_CLIENT_ID }}
27- ARM_TENANT_ID : ${{ vars.AZURE_TENANT_ID }}
28- ARM_SUBSCRIPTION_ID : ${{ vars.AZURE_SUBSCRIPTION_ID }}
26+ working-directory : ${{ env.TF_WORKING_DIR }}
2927
3028 steps :
3129 - name : Checkout
4139 - name : Setup Terraform
4240 uses : hashicorp/setup-terraform@v3
4341 with :
44- terraform_version : 1.14.2
42+ terraform_version : 1.6.6
4543
4644 - name : Terraform fmt (check)
4745 run : terraform fmt -check -recursive
@@ -53,28 +51,34 @@ jobs:
5351 run : terraform validate
5452
5553 - name : Terraform plan
56- run : terraform plan -input=false -no-color
54+ run : terraform plan -no-color -out=tfplan
55+
56+ - name : Upload plan artifact
57+ uses : actions/upload-artifact@v4
58+ with :
59+ name : tfplan
60+ path : ${{ env.TF_WORKING_DIR }}/tfplan
5761
5862 apply :
59- name : apply
6063 runs-on : ubuntu-latest
6164 needs : plan
6265 if : github.event_name == 'workflow_dispatch'
6366 environment : apply
67+
6468 defaults :
6569 run :
66- working-directory : infra/workload/01-local-state
67- shell : bash
68- env :
69- ARM_USE_OIDC : true
70- ARM_CLIENT_ID : ${{ vars.AZURE_CLIENT_ID }}
71- ARM_TENANT_ID : ${{ vars.AZURE_TENANT_ID }}
72- ARM_SUBSCRIPTION_ID : ${{ vars.AZURE_SUBSCRIPTION_ID }}
70+ working-directory : ${{ env.TF_WORKING_DIR }}
7371
7472 steps :
7573 - name : Checkout
7674 uses : actions/checkout@v4
7775
76+ - name : Download plan artifact
77+ uses : actions/download-artifact@v4
78+ with :
79+ name : tfplan
80+ path : ${{ env.TF_WORKING_DIR }}
81+
7882 - name : Azure Login (OIDC)
7983 uses : azure/login@v2
8084 with :
@@ -85,10 +89,10 @@ jobs:
8589 - name : Setup Terraform
8690 uses : hashicorp/setup-terraform@v3
8791 with :
88- terraform_version : 1.14.2
92+ terraform_version : 1.6.6
8993
9094 - name : Terraform init
9195 run : terraform init -input=false
9296
9397 - name : Terraform apply
94- run : terraform apply -auto-approve -input=false -no-color
98+ run : terraform apply -auto-approve tfplan
0 commit comments