Azure devops 通过用户界面触发Azure管道问题

Azure devops 通过用户界面触发Azure管道问题,azure-devops,Azure Devops,我们有一个YML Azure发布管道,在构建管道完成时,我们将尝试在其下方触发 我们注意到,当构建管道部分成功时,不会触发YML版本。虽然当我们根据下面的代码片段在发布管道中使用触发器部分时,即使构建部分成功,它也会被触发,但当我们根据所附的屏幕截图通过UI配置触发器时,它不会在构建管道部分成功时被触发 下面是我们在YML代码本身中进行触发器设置的时候——即使部分成功构建,也可以这样做。 下面是我们仅在UI中进行触发设置的情况——这在部分成功构建的情况下不起作用。 请让我们知道,当我们通过U

我们有一个YML Azure发布管道,在构建管道完成时,我们将尝试在其下方触发

我们注意到,当构建管道部分成功时,不会触发YML版本。虽然当我们根据下面的代码片段在发布管道中使用触发器部分时,即使构建部分成功,它也会被触发,但当我们根据所附的屏幕截图通过UI配置触发器时,它不会在构建管道部分成功时被触发

下面是我们在YML代码本身中进行触发器设置的时候——即使部分成功构建,也可以这样做。

下面是我们仅在UI中进行触发设置的情况——这在部分成功构建的情况下不起作用。

请让我们知道,当我们通过UI设置触发器时,即使构建部分成功,我们应该如何触发发布管道

谢谢
Sharad

请检查此处的文档:

以前,您可能已经导航到YAML的经典编辑器 管道和配置的构建完成触发器在UI中。虽然 该模型仍然有效,不再推荐。推荐的 方法是直接在YAML中指定管道触发器 文件经典编辑器中定义的构建完成触发器 现在已经在管道触发器中解决了各种缺点


请检查此处的文档:

以前,您可能已经导航到YAML的经典编辑器 管道和配置的构建完成触发器在UI中。虽然 该模型仍然有效,不再推荐。推荐的 方法是直接在YAML中指定管道触发器 文件经典编辑器中定义的构建完成触发器 现在已经在管道触发器中解决了各种缺点

同意Cece的观点

作为一种解决方法,我们可以添加TaskPowerShell并调用API来触发构建

步骤:

创建PAT令牌->将其保存在构建管道变量中,并将其保存为机密

添加task power shell并将条件设置为
,即使以前的任务失败,即使构建已取消

powershell脚本:

$token = "$(pat)"
$url = "https://dev.azure.com/{Org name}/{project name}/_apis/build/builds?api-version=6.1-preview.6"
$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($token)"))


$JSON = @"
{
  "definition": {
    "id": {Build definition ID}
  }
}
"@

$response = Invoke-RestMethod -Uri $url -Headers @{Authorization = "Basic $token"} -Method Post -ContentType application/json -body $JSON
write-host $response
结果:

同意Cece的意见

作为一种解决方法,我们可以添加TaskPowerShell并调用API来触发构建

步骤:

创建PAT令牌->将其保存在构建管道变量中,并将其保存为机密

添加task power shell并将条件设置为
,即使以前的任务失败,即使构建已取消

powershell脚本:

$token = "$(pat)"
$url = "https://dev.azure.com/{Org name}/{project name}/_apis/build/builds?api-version=6.1-preview.6"
$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($token)"))


$JSON = @"
{
  "definition": {
    "id": {Build definition ID}
  }
}
"@

$response = Invoke-RestMethod -Uri $url -Headers @{Authorization = "Basic $token"} -Method Post -ContentType application/json -body $JSON
write-host $response
结果:


我无法在yml中使用管道触发器,因为我无法修复源中的生成管道名称。。这就是为什么对于每个管道,我都试图选择文档中提到的UI触发器,但它不支持部分完成的构建。您能详细说明一下“不修复构建管道名称”吗?下面提供的解决方法Vito如何?这意味着我实际上无法用yml硬编码构建管道名称。这就是为什么要从UI使用触发器,但在部分成功构建的情况下,这不起作用。对此限制,我感到抱歉。您能够编辑生成管道吗?如果您可以编辑生成管道,您可以尝试@Vito的解决方法,该方法在生成管道中使用rest api来触发发布管道。Cece,您是否可以建议我们在配置管道资源时在生成管道名称处使用变量。。我无法在该级别使用变量,这就是为什么我们使用UI设置触发器的方法。我不能在yml中使用管道触发器,因为我无法在源代码中修复生成管道名称。。这就是为什么对于每个管道,我都试图选择文档中提到的UI触发器,但它不支持部分完成的构建。您能详细说明一下“不修复构建管道名称”吗?下面提供的解决方法Vito如何?这意味着我实际上无法用yml硬编码构建管道名称。这就是为什么要从UI使用触发器,但在部分成功构建的情况下,这不起作用。对此限制,我感到抱歉。您能够编辑生成管道吗?如果您可以编辑生成管道,您可以尝试@Vito的解决方法,该方法在生成管道中使用rest api来触发发布管道。Cece,您是否可以建议我们在配置管道资源时在生成管道名称处使用变量。。我无法在那个级别使用变量,这就是为什么我们使用UI设置触发器的方法。