CI/CD 部署条件未触发

CI/CD Deployment Conditions Not Triggering

我已经为此奋斗了一天多了。我在 VSTS CI/CD 管道中有一个简单的要求,我正在尝试构建任何遵循模式 release/*hotfix/* 的 b运行ch 应该触发部署到我的质量检查环境。这是我基于 b运行ch 的配置:

此配置未按预期触发部署。正如您在发布 运行 下方的屏幕截图中所见,但并未针对我的任何环境触发。 (QA 是从右边数第二个灰色方块,应该是绿色或红色取决于部署是成功还是失败)。

为了解决这个问题,我尝试改用构建标签。我添加了一个 Powershell 步骤,该步骤根据 b运行ch.

的名称有条件地添加构建标签
$branchName = $Env:BUILD_SOURCEBRANCH

if ($branchName -like '*release/*')
{
    Write-Host "##vso[build.addbuildtag]release"
}

if ($branchName -like '*hotfix/*')
{
    Write-Host "##vso[build.addbuildtag]hotfix"
}

这正确地设置了构建标签,正如我在构建工件和应用了标签的日志中看到的那样。但是,将我的部署条件修改为标签感知会导致与我尝试使用 b运行ches:

完全相同的行为

编辑: 根据要求,这里是 CI 定义,其中显示了获取源步骤。这里没有添加多个 b运行ch 条件的选项。它们在“触发器”部分中设置。

这通常是由于同时配置了两个不同的条件引起的,因为 VSTS 在此处使用 "AND" 运算符而不是 "OR" 运算符。在这种情况下,部署条件是这样的:"Artifact Branch from Release/*" AND "Artifact Branch from Feature/*",无法满足。如果您双击 "Release 28" 打开它并将鼠标移到 "i" 图标上,您应该会看到它没有被触发的原因。请检查是不是我上面说的原因

解决方法是创建一个新的部署环境并从 QA 克隆设置,然后将两个环境中的两个条件分开。