CI / CD部署条件未触发

时间:2017-07-17 16:29:58

标签: azure-devops azure-pipelines azure-pipelines-build-task azure-pipelines-release-pipeline

我现在已经和他斗争了一天多了。我在VSTS CI / CD管道中有一个简单的要求,我试图构建模式release/*hotfix/*之后的任何分支都应该触发部署到我的QA环境。这是我的基于分支的配置:

enter image description here

此配置不会按预期触发部署。正如您在下面的屏幕截图中看到的那样,发布版本已经运行但未触发任何环境。 (QA是右边的第二个灰色方块,应该是绿色或红色,具体取决于部署是成功还是失败)。

enter image description here

为了解决这个问题,我尝试使用Build Tags。我添加了一个Powershell步骤,它根据分支的名称有条件地添加了构建标记。

$branchName = $Env:BUILD_SOURCEBRANCH

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

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

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

enter image description here enter image description here

修改 根据要求,此处是显示获取源步骤的CI定义。此处无法添加多个分支条件。它们在触发器部分中设置。

Get Sources CI Config CI Triggers

1 个答案:

答案 0 :(得分:1)

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

enter image description here

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