From e232d8e09b0af48c679c70e84e1e0ef7915bf5af Mon Sep 17 00:00:00 2001 From: Zelin Wang Date: Wed, 24 Jun 2026 21:04:46 +1000 Subject: [PATCH 1/2] {CI} Add Azure Pipeline to trigger reference docs CI Add .azure-pipelines/trigger-reference-docs-ci.yml, an internal Azure Pipeline that queues the docs reference CI pipeline on release, replacing the GitHub Action's FIC-based login with an Azure DevOps service connection. The existing GitHub Action is kept for now as a safety net. --- .../trigger-reference-docs-ci.yml | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 .azure-pipelines/trigger-reference-docs-ci.yml diff --git a/.azure-pipelines/trigger-reference-docs-ci.yml b/.azure-pipelines/trigger-reference-docs-ci.yml new file mode 100644 index 00000000000..51e8fabc05d --- /dev/null +++ b/.azure-pipelines/trigger-reference-docs-ci.yml @@ -0,0 +1,58 @@ +name: Azure CLI Trigger Reference Docs CI + +trigger: + branches: + include: + - release + - release-lts-* + - test-release-* + +pr: none + +resources: +- repo: self + +variables: +- template: ${{ variables.Pipeline.Workspace }}/.azure-pipelines/templates/variables.yml +# - group: '' # provides ADO_DocsReference_Organization / _Project / _Latest_Pipeline_ID / _LTS_Pipeline_ID / _ServiceConnection + +jobs: +- job: TriggerReferenceDocsCI + displayName: 'Queue Microsoft Learn Docs Reference CI' + condition: or(eq(variables['Build.SourceBranchName'], 'release'), startsWith(variables['Build.SourceBranchName'], 'release-lts-'), startsWith(variables['Build.SourceBranchName'], 'test-release-')) + pool: + name: ${{ variables.ubuntu_pool }} + steps: + - checkout: none + - task: AzureCLI@2 + displayName: 'Queue docs reference pipeline' + inputs: + azureSubscription: $(ADO_DocsReference_ServiceConnection) + scriptType: pscore + scriptLocation: inlineScript + inlineScript: | + $organization = $env:AdoOrg + $project = $env:AdoProject + $thisRepoLink = $env:ThisRepoLink + $thisRunLink = $env:ThisRunLink + $triggerBranch = $env:ReleaseBranch + $definitionId = $triggerBranch -like 'release-lts-*' ? $env:AdoLtsPipelineId : $env:AdoLatestPipelineId + $variables = @("triggerBranch=$triggerBranch", "triggerFromRepo=$thisRepoLink", "triggerByPipeline=$thisRunLink") + + $output = az pipelines build queue --definition-id $definitionId --project $project --organization $organization --variables @variables | ConvertFrom-Json -AsHashtable + if ($? -eq $false) + { + $pipelineDefinitionLink = $organization + [uri]::EscapeDataString($project) + "/_build?definitionId=$definitionId" + Write-Error "Failed to queue the pipeline run for $pipelineDefinitionLink, please check above error message." + } + $runId = $output.id + $runLink = $organization + [uri]::EscapeDataString($project) + "/_build/results?buildId=$runId" + Write-Host "Triggered reference pipeline run, for details please check: $runLink" + env: + AdoOrg: $(ADO_DocsReference_Organization) + AdoProject: $(ADO_DocsReference_Project) + AdoLatestPipelineId: $(ADO_DocsReference_Latest_Pipeline_ID) + AdoLtsPipelineId: $(ADO_DocsReference_LTS_Pipeline_ID) + ReleaseBranch: $(Build.SourceBranchName) + ThisRepoLink: $(Build.Repository.Uri) + ThisRunLink: $(System.CollectionUri)$(System.TeamProject)/_build/results?buildId=$(Build.BuildId) From 99303b18c26888be94cf5460fa3e00acc043e49d Mon Sep 17 00:00:00 2001 From: Zelin Wang Date: Thu, 25 Jun 2026 16:29:08 +1000 Subject: [PATCH 2/2] Fail the queue step on az pipelines build queue non-zero exit code --- .azure-pipelines/trigger-reference-docs-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.azure-pipelines/trigger-reference-docs-ci.yml b/.azure-pipelines/trigger-reference-docs-ci.yml index 51e8fabc05d..3c3ca499721 100644 --- a/.azure-pipelines/trigger-reference-docs-ci.yml +++ b/.azure-pipelines/trigger-reference-docs-ci.yml @@ -40,10 +40,10 @@ jobs: $variables = @("triggerBranch=$triggerBranch", "triggerFromRepo=$thisRepoLink", "triggerByPipeline=$thisRunLink") $output = az pipelines build queue --definition-id $definitionId --project $project --organization $organization --variables @variables | ConvertFrom-Json -AsHashtable - if ($? -eq $false) + if ($LASTEXITCODE -ne 0) { $pipelineDefinitionLink = $organization + [uri]::EscapeDataString($project) + "/_build?definitionId=$definitionId" - Write-Error "Failed to queue the pipeline run for $pipelineDefinitionLink, please check above error message." + throw "Failed to queue the pipeline run for $pipelineDefinitionLink, please check above error message." } $runId = $output.id $runLink = $organization + [uri]::EscapeDataString($project) + "/_build/results?buildId=$runId"