How microsoft/azure-pipelines-terraform works
This Azure DevOps extension installs Terraform and runs it in pipeline tasks, including provider-specific authentication and Terraform operations. It also provides a build-plan summary view that retrieves Terraform plan attachments and formats them for display. The task versions share a repeated architecture; the graph uses V5 as the representative implementation, with V1–V4 still present in the repository. Relationships are limited to calls or imports visible in excerpts or the source index; undocumented task dispatch is omitted.
Main entry points: azure-terraform-command-handler.ts Azure handler · plan-summary-tab.tsx Plan summary · base-terraform-command-handler.ts Command handler · attachments.ts Plan attachments
Components 20
Terraform installation
- Installer entry
Tasks/TerraformInstaller/TerraformInstallerV0/src/index.ts - Terraform installer
Tasks/TerraformInstaller/TerraformInstallerV0/src/terraform-installer.ts
Pipeline execution
- Task entry
Tasks/TerraformTask/TerraformTaskV5/src/index.ts - Task coordinator
Tasks/TerraformTask/TerraformTaskV5/src/parent-handler.ts - Command handler
Tasks/TerraformTask/TerraformTaskV5/src/base-terraform-command-handler.ts - Command models
Tasks/TerraformTask/TerraformTaskV5/src/terraform-commands.ts - Terraform runner
Tasks/TerraformTask/TerraformTaskV5/src/terraform.ts
Provider authentication
- AWS handler
Tasks/TerraformTask/TerraformTaskV5/src/aws-terraform-command-handler.ts - Azure handler
Tasks/TerraformTask/TerraformTaskV5/src/azure-terraform-command-handler.ts - GCP handler
Tasks/TerraformTask/TerraformTaskV5/src/gcp-terraform-command-handler.ts - OCI handler
Tasks/TerraformTask/TerraformTaskV5/src/oci-terraform-command-handler.ts - Environment variables
Tasks/TerraformTask/TerraformTaskV5/src/environment-variables.ts - ID token generator
Tasks/TerraformTask/TerraformTaskV5/src/id-token-generator.ts
Plan summary view
- View entry
views/terraform-plan/src/index.tsx - Plan summary
views/terraform-plan/src/plan-summary-tab/plan-summary-tab.tsx - Plan attachments
views/terraform-plan/src/services/attachments.ts - Plan formatter
views/terraform-plan/src/services/plan-formatter.ts
Other components
- Pipeline author
- Terraform CLI
- Azure DevOps
Connections 14
- Pipeline author → Installer entry: configures install
- Installer entry → Terraform installer: invokes
Tasks/TerraformInstaller/TerraformInstallerV0/src/index.ts - Pipeline author → Task entry: configures task
- Command handler → Command models: uses command models
Tasks/TerraformTask/TerraformTaskV5/src/base-terraform-command-handler.ts - Command handler → Terraform CLI: executes commands
Tasks/TerraformTask/TerraformTaskV5/src/base-terraform-command-handler.ts - Azure handler → Command handler: extends handler
Tasks/TerraformTask/TerraformTaskV5/src/azure-terraform-command-handler.ts - Azure handler → Command models: initializes authorization
Tasks/TerraformTask/TerraformTaskV5/src/azure-terraform-command-handler.ts - Azure handler → Environment variables: uses helper
Tasks/TerraformTask/TerraformTaskV5/src/azure-terraform-command-handler.ts - Azure handler → ID token generator: generates token
Tasks/TerraformTask/TerraformTaskV5/src/azure-terraform-command-handler.ts - View entry → Plan summary: renders
views/terraform-plan/src/index.tsx - View entry → Plan attachments: creates service
views/terraform-plan/src/index.tsx - Plan summary → Plan attachments: loads attachments
views/terraform-plan/src/plan-summary-tab/plan-summary-tab.tsx - Plan summary → Plan formatter: formats plans
views/terraform-plan/src/plan-summary-tab/plan-summary-tab.tsx - Plan attachments → Azure DevOps: reads build data
views/terraform-plan/src/services/attachments.ts