alz/azuredevops/pipelines/terraform/templates/ci-template.yaml (66 lines of code) (raw):

--- parameters: - name: root_module_folder_relative_path default: '.' - name: terraform_cli_version default: 'latest' stages: - stage: validate displayName: Validation Terraform variables: - group: ${variable_group_name} - name: 'selfHostedAgent' value: '${self_hosted_agent}' jobs: - job: validate displayName: Validate Terraform pool: ${agent_pool_configuration} steps: - template: helpers/terraform-installer.yaml parameters: terraformVersion: $${{ parameters.terraform_cli_version }} - pwsh: | terraform ` -chdir="$${{ parameters.root_module_folder_relative_path }}" ` fmt ` -check displayName: Terraform Format Check - pwsh: | terraform ` -chdir="$${{ parameters.root_module_folder_relative_path }}" ` init ` -backend=false displayName: Terraform Init - pwsh: | terraform ` -chdir="$${{ parameters.root_module_folder_relative_path }}" ` validate displayName: Terraform Validate - deployment: plan dependsOn: validate displayName: Validate Terraform Plan pool: ${agent_pool_configuration} environment: ${environment_name_plan} timeoutInMinutes: 0 strategy: runOnce: deploy: steps: - checkout: self displayName: Checkout Terraform Module - template: helpers/terraform-installer.yaml parameters: terraformVersion: $${{ parameters.terraform_cli_version }} - template: helpers/terraform-init.yaml parameters: serviceConnection: '${service_connection_name_plan}' backendAzureResourceGroupName: $(BACKEND_AZURE_RESOURCE_GROUP_NAME) backendAzureStorageAccountName: $(BACKEND_AZURE_STORAGE_ACCOUNT_NAME) backendAzureStorageAccountContainerName: $(BACKEND_AZURE_STORAGE_ACCOUNT_CONTAINER_NAME) root_module_folder_relative_path: $${{ parameters.root_module_folder_relative_path }} - template: helpers/terraform-plan.yaml parameters: serviceConnection: '${service_connection_name_plan}' root_module_folder_relative_path: $${{ parameters.root_module_folder_relative_path }}