1- name : Terraform Apply
1+ name : Terraform Deploy
22
33on :
44 push :
@@ -13,7 +13,7 @@ permissions:
1313 id-token : write
1414
1515jobs :
16- terraform :
16+ setup-backend :
1717 runs-on : ubuntu-latest
1818 steps :
1919 - name : Checkout Repository
@@ -31,34 +31,34 @@ jobs:
3131 tenant-id : ${{ secrets.AZURE_TENANT_ID }}
3232 subscription-id : ${{ secrets.AZURE_SUBSCRIPTION_ID }}
3333
34- - name : Setup Terraform State Storage
34+ - name : Setup State Backend
35+ working-directory : backend-setup
3536 run : |
36- # Create resource group for state if it doesn't exist
37- az group create --name terraform-state-rg --location eastus2 || true
37+ terraform init
38+ terraform apply -auto-approve
3839
39- # Create storage account if it doesn't exist
40- az storage account create \
41- --name isfterraformstate \
42- --resource-group terraform-state-rg \
43- --location eastus2 \
44- --sku Standard_LRS \
45- --encryption-services blob || true
40+ deploy-infrastructure :
41+ needs : setup-backend
42+ runs-on : ubuntu-latest
43+ steps :
44+ - name : Checkout Repository
45+ uses : actions/checkout@v4
4646
47- # Create container if it doesn't exist
48- az storage container create \
49- --name tfstate \
50- --account-name isfterraformstate || true
47+ - name : Setup Terraform
48+ uses : hashicorp/setup-terraform@v3
49+ with :
50+ terraform_version : 1.9.8
51+
52+ - name : Azure Login via OIDC
53+ uses : azure/login@v2
54+ with :
55+ client-id : ${{ secrets.AZURE_CLIENT_ID }}
56+ tenant-id : ${{ secrets.AZURE_TENANT_ID }}
57+ subscription-id : ${{ secrets.AZURE_SUBSCRIPTION_ID }}
5158
5259 - name : Terraform Init
5360 run : terraform init
5461
55- - name : Import Existing Resources
56- continue-on-error : true
57- run : |
58- terraform import -var-file="env.tfvars" azurerm_resource_group.rg /subscriptions/${{ secrets.AZURE_SUBSCRIPTION_ID }}/resourceGroups/isfinfa-rg || true
59- terraform import -var-file="env.tfvars" azurerm_service_plan.asp /subscriptions/${{ secrets.AZURE_SUBSCRIPTION_ID }}/resourceGroups/isfinfa-rg/providers/Microsoft.Web/serverFarms/isfinfa-plan || true
60- terraform import -var-file="env.tfvars" azurerm_linux_web_app.backend /subscriptions/${{ secrets.AZURE_SUBSCRIPTION_ID }}/resourceGroups/isfinfa-rg/providers/Microsoft.Web/sites/isfinfa-go-backend || true
61-
6262 - name : Terraform Validate
6363 run : terraform validate
6464
0 commit comments