Skip to content

Commit ab1c016

Browse files
ci: terraform plan/apply via github actions (oidc)
1 parent 425c2c8 commit ab1c016

1 file changed

Lines changed: 40 additions & 24 deletions

File tree

.github/workflows/terraform.yml

Lines changed: 40 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,31 @@ name: terraform-oidc
22

33
on:
44
push:
5-
branches: [ "main" ]
6-
workflow_dispatch: {}
5+
branches: ["main"]
6+
workflow_dispatch:
77

88
permissions:
99
id-token: write
1010
contents: read
1111

1212
env:
13-
TF_WORKING_DIR: infra/workload/01-local-state
14-
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 }}
13+
TF_IN_AUTOMATION: true
14+
TF_INPUT: false
2015

2116
jobs:
2217
plan:
18+
name: plan
2319
runs-on: ubuntu-latest
20+
defaults:
21+
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 }}
29+
2430
steps:
2531
- name: Checkout
2632
uses: actions/checkout@v4
@@ -37,22 +43,34 @@ jobs:
3743
with:
3844
terraform_version: 1.14.2
3945

40-
- name: Terraform Init
41-
working-directory: ${{ env.TF_WORKING_DIR }}
42-
run: terraform init
46+
- name: Terraform fmt (check)
47+
run: terraform fmt -check -recursive
48+
49+
- name: Terraform init
50+
run: terraform init -input=false
4351

44-
- name: Terraform Validate
45-
working-directory: ${{ env.TF_WORKING_DIR }}
52+
- name: Terraform validate
4653
run: terraform validate
4754

48-
- name: Terraform Plan
49-
working-directory: ${{ env.TF_WORKING_DIR }}
50-
run: terraform plan -lock-timeout=0s
55+
- name: Terraform plan
56+
run: terraform plan -input=false -no-color
5157

5258
apply:
53-
needs: plan
59+
name: apply
5460
runs-on: ubuntu-latest
61+
needs: plan
5562
if: github.event_name == 'workflow_dispatch'
63+
environment: apply
64+
defaults:
65+
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 }}
73+
5674
steps:
5775
- name: Checkout
5876
uses: actions/checkout@v4
@@ -69,10 +87,8 @@ jobs:
6987
with:
7088
terraform_version: 1.14.2
7189

72-
- name: Terraform Init
73-
working-directory: ${{ env.TF_WORKING_DIR }}
74-
run: terraform init
90+
- name: Terraform init
91+
run: terraform init -input=false
7592

76-
- name: Terraform Apply
77-
working-directory: ${{ env.TF_WORKING_DIR }}
78-
run: terraform apply -auto-approve -lock-timeout=0s
93+
- name: Terraform apply
94+
run: terraform apply -auto-approve -input=false -no-color

0 commit comments

Comments
 (0)