11name : terraform-oidc
22
33on :
4- workflow_dispatch :
54 push :
65 branches : [ "main" ]
7- paths :
8- - " infra/workload/01-local-state/**"
9- - " .github/workflows/terraform.yml"
6+ workflow_dispatch : {}
107
118permissions :
129 id-token : write
1310 contents : read
1411
1512env :
16- TF_IN_AUTOMATION : true
17- TF_INPUT : false
1813 TF_WORKING_DIR : infra/workload/01-local-state
1914
15+ # Terraform AzureRM Provider / Backend via OIDC
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 }}
20+
2021jobs :
2122 plan :
2223 runs-on : ubuntu-latest
23- defaults :
24- run :
25- shell : bash
26- working-directory : ${{ env.TF_WORKING_DIR }}
27-
2824 steps :
2925 - name : Checkout
3026 uses : actions/checkout@v4
3127
32- - name : Setup Terraform
33- uses : hashicorp/setup-terraform@v3
34- with :
35- terraform_version : 1.6.6
36-
3728 - name : Azure Login (OIDC)
3829 uses : azure/login@v2
3930 with :
40- client-id : ${{ secrets.AZURE_CLIENT_ID }}
41- tenant-id : ${{ secrets.AZURE_TENANT_ID }}
42- subscription-id : ${{ secrets.AZURE_SUBSCRIPTION_ID }}
31+ client-id : ${{ vars.AZURE_CLIENT_ID }}
32+ tenant-id : ${{ vars.AZURE_TENANT_ID }}
33+ subscription-id : ${{ vars.AZURE_SUBSCRIPTION_ID }}
34+
35+ - name : Setup Terraform
36+ uses : hashicorp/setup-terraform@v3
37+ with :
38+ terraform_version : 1.14.2
4339
4440 - name : Terraform Init
41+ working-directory : ${{ env.TF_WORKING_DIR }}
4542 run : terraform init
4643
4744 - name : Terraform Validate
45+ working-directory : ${{ env.TF_WORKING_DIR }}
4846 run : terraform validate
4947
5048 - name : Terraform Plan
49+ working-directory : ${{ env.TF_WORKING_DIR }}
5150 run : terraform plan -lock-timeout=0s
5251
5352 apply :
5453 needs : plan
5554 runs-on : ubuntu-latest
5655 if : github.event_name == 'workflow_dispatch'
57- defaults :
58- run :
59- shell : bash
60- working-directory : ${{ env.TF_WORKING_DIR }}
61-
6256 steps :
6357 - name : Checkout
6458 uses : actions/checkout@v4
6559
66- - name : Setup Terraform
67- uses : hashicorp/setup-terraform@v3
68- with :
69- terraform_version : 1.6.6
70-
7160 - name : Azure Login (OIDC)
7261 uses : azure/login@v2
7362 with :
74- client-id : ${{ secrets.AZURE_CLIENT_ID }}
75- tenant-id : ${{ secrets.AZURE_TENANT_ID }}
76- subscription-id : ${{ secrets.AZURE_SUBSCRIPTION_ID }}
63+ client-id : ${{ vars.AZURE_CLIENT_ID }}
64+ tenant-id : ${{ vars.AZURE_TENANT_ID }}
65+ subscription-id : ${{ vars.AZURE_SUBSCRIPTION_ID }}
66+
67+ - name : Setup Terraform
68+ uses : hashicorp/setup-terraform@v3
69+ with :
70+ terraform_version : 1.14.2
7771
7872 - name : Terraform Init
73+ working-directory : ${{ env.TF_WORKING_DIR }}
7974 run : terraform init
8075
8176 - name : Terraform Apply
77+ working-directory : ${{ env.TF_WORKING_DIR }}
8278 run : terraform apply -auto-approve -lock-timeout=0s
0 commit comments