I am experiencing an issue with my deployment pipeline where the final ‘apply’ stage does not trigger, even though there are no explicit dependencies or conditions set to control its execution. Below is an overview of the template I use to deploy each environment:
Pipeline:
trigger:
batch: true
branches:
include:
- main
pr:
branches:
include:
- main
stages:
- template: templates/deploy.yml
parameters:
environment: Dev
- template: templates/deploy.yml
parameters:
environment: Uat
- template: templates/deploy.yml
parameters:
environment: Prd
Template:
stages:
- stage: Terraform_Plan_${{ parameters.environment }}
displayName: Plan
condition: always()
jobs:
- job: Terraform_Plan_${{ parameters.environment }}
displayName: Plan Terraform
pool: 'selfhosted'
steps:
- powershell: |
# set it to true or false
Write-Host "##vso[task.setvariable variable=anyTfChanges;isOutput=true]true"
displayName: Detect any Terraform changes
name: anyTfChanges
- stage: Any_Tf_Changes_${{ parameters.environment }}
displayName: Terraform Changes
dependsOn: Terraform_Plan_${{ parameters.environment }}
variables:
anyTfChanges: $[ stageDependencies.Terraform_Plan_${{ parameters.environment }}.Terraform_Plan_${{ parameters.environment }}.outputs['anyTfChanges.anyTfChanges'] ]
condition: and(eq('true', 'true'), eq(dependencies.Terraform_Plan_${{ parameters.environment }}.outputs['Terraform_Plan_${{ parameters.environment }}.anyTfChanges.anyTfChanges'], 'true'))
jobs:
- job: Terraform_Changes_${{ parameters.environment }}
displayName: Detect Terraform Changes
steps:
- checkout: none
- powershell: |
Write-Host "hello world"
displayName: Terraform changes detected
- stage: Terraform_Apply_${{ parameters.environment }}
displayName: Apply ${{ parameters.environment }}
jobs:
- deployment: Apply
environment: ${{ parameters.environmentDisplayName }}
displayName: Apply Terraform
pool: 'selfhosted'
strategy:
runOnce:
deploy:
steps:
- checkout: self
- script: |
Write-Host "hello world"
Despite the configuration, the last ‘apply’ stage does not run in last prd
stages:
Does anyone know why this might be happening or what I might be missing in the configuration that prevents this stage from running?
Thanks in advance for any help or insights!