Azure DevOps YAML流水线资源手动触发未默认包含部分成功构建
Azure Pipelines 手动触发时Pipeline资源默认不选取部分成功构建问题
问题背景
该问题与Azure Pipelines YAML仓库#459 issue描述的现象完全一致,对应issue中提问者被引导至其他论坛,至今没有公开可用的解决方案。
当前流水线中定义的pipeline资源配置如下:
pipelines: - pipeline: MainRebuild project: ProjectName source: 'Main - Rebuild' branch: feature/DummySmokeTest trigger: branches: - master - feature/DummySmokeTest
正常运行的逻辑
- 资源自动触发逻辑工作正常:当
MainRebuild流水线完成状态为Successful或PartiallySucceeded时,均可正确触发下游流水线,拉取对应版本的正确制品。
异常现象
- 手动排队触发流水线时存在逻辑偏差:触发界面默认显示资源选项为「Last successful run」,展示符合预期,但如果最新一次
MainRebuild运行状态为PartiallySucceeded,不修改资源配置直接触发构建时,流水线会拉取状态为Successful的最新构建,而非时间维度最新的PartiallySucceeded构建。
临时规避方案
手动触发构建时手动选择指定资源,此时流水线会列出所有状态为
Successful和PartiallySucceeded的运行记录,手动选择最新的PartiallySucceeded运行并确认使用后,流水线即可正确拉取对应资源。
该方案需要人工操作,无法满足自动化触发需求,现需确认是否存在相关配置项,可调整默认的「最新成功运行」拉取逻辑,让默认选取的构建范围包含部分成功的构建。
当前制品下载任务配置
已在下载任务中开启允许部分成功构建的参数,具体配置如下:
# Download build and pipeline artifacts - task: DownloadBuildArtifacts@0 inputs: buildType: 'specific' project: ProjectName pipeline: '$(RESOURCES.PIPELINE.MAINREBUILD.PIPELINEID)' specificBuildWithTriggering: true buildVersionToDownload: specific buildId: '$(RESOURCES.PIPELINE.MAINREBUILD.RUNID)' allowPartiallySucceededBuilds: true downloadType: specific itemPattern: | **\Installers\*.exe downloadPath: '$(System.ArtifactsDirectory)'
内容的提问来源于stack exchange,提问作者Nico
相关产品推荐
相关产品推荐

