Skip to content
# This is a basic workflow to help you get started with Actions
name: 'LZ - Demo - Terraform - Plan'
# Controls when the workflow will run
on:
# Triggers the workflow on push request events but only for the "test-core" branch
pull_request:
branches:
- main
paths:
- LZ/Demo/**
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
concurrency:
group: lz-demo
cancel-in-progress: false
jobs:
terraform:
name: 'Terraform'
runs-on: ubuntu-latest
environment: LZ/Demo
# Use the Bash shell regardless whether the GitHub Actions runner is ubuntu-latest, macos-latest, or windows-latest
defaults:
run:
working-directory: ./LZ/Demo
shell: bash
steps:
# Checkout the repository to the GitHub Actions runner
- name: Checkout
uses: actions/checkout@v3
# Install the latest version of Terraform CLI and configure the Terraform CLI configuration file with a Terraform Cloud user API token
- name: Setup Terraform
uses: hashicorp/setup-terraform@v2
with:
terraform_wrapper: false
# Initialize a new or existing Terraform working directory by creating initial files, loading any remote state, downloading modules, etc.
- name: Terraform Init
run: terraform init --backend-config=config.azurerm.tfbackend
env:
#Connection Variables
ARM_CLIENT_ID: ${{ vars.AZURE_CLIENT_ID }}
ARM_SUBSCRIPTION_ID: ${{ vars.SUBSCRIPTION_ID }}
ARM_TENANT_ID: ${{ vars.AZURE_TENANT_ID }}
ARM_CLIENT_SECRET: ${{ secrets.AZURE_ACTIONS_SECRET }}
shell: bash
# Checks that all Terraform configuration files adhere to a canonical format
- name: Terraform Format
run: terraform fmt -check
# Generates an execution plan for Terraform
- name: Terraform Plan
run: terraform plan -input=false
env:
#Connection Variables
ARM_CLIENT_ID: ${{ vars.AZURE_CLIENT_ID }}
ARM_SUBSCRIPTION_ID: ${{ vars.SUBSCRIPTION_ID }}
ARM_TENANT_ID: ${{ vars.AZURE_TENANT_ID }}
ARM_CLIENT_SECRET: ${{ secrets.AZURE_ACTIONS_SECRET }}
#env
TF_VAR_root_id: ${{ vars.ROOT_ID }}
TF_VAR_root_name: ${{ vars.ROOT_NAME }}
TF_VAR_landing_zone_subscription_ids: ${{ vars.SUBSCRIPTION_IDS }}
TF_VAR_azuread_group_owner: ${{ vars.AZUREAD_GROUP_OWNER }}
TF_VAR_landing_zone_name: "Demo"
shell: bash