【问题标题】:Azure devops pipeline triggersAzure devops 管道触发器
【发布时间】:2020-04-13 08:26:14
【问题描述】:

我正在尝试构建一个由其他管道触发并且不能自行排队的管道。我无法找到一种方法来做同样的事情。任何帮助将不胜感激。

更新:

我正在寻找的结构是 PipelineA 触发 PipelineB 并等待 PipelineB 完成。如果我添加一个触发器说完成时开始它不会触发 PipelineB,因为 A 在技术上不完整。

谢谢

【问题讨论】:

  • 您是否首先查看了可用触发器的管道文档?您使用的是 Azure DevOps,还是使用本地 TFS?如果是本地 TFS,是什么版本?
  • @DanielMann - 我正在使用 azure devops。我想要的结构是能够从 1 触发管道 2,并且管道 1 仍然处于活动状态并等待管道 2 完成,所以如果我说成功,就我从 doc 了解的情况而言,它不会起作用。跨度>
  • 嗨,suprasad,这张票有什么更新吗?只是检查一下提供的信息是否有帮助。

标签: tfs azure-devops azure-pipelines


【解决方案1】:

假设您使用的是 Azure DevOps,您可以添加 pipeline trigger 以在触发管道成功完成后运行您的管道。

为防止触发管道的两次运行,您必须删除其自己的 CI 触发器或管道触发器。

【讨论】:

  • 我想要的结构是为了能够从 1 触发管道 2,并且管道 1 仍然处于活动状态并等待管道 2 完成,所以如果我说成功,它将无法正常工作正如我从文档中了解的那样。
  • 管道触发器在管道 A 成功完成后运行管道 B,这不符合您的要求。为了满足您的要求,您可以尝试添加agentless job,在此作业中添加Invoke REST API task,在此任务中添加queue a build,以构建管道B。
【解决方案2】:

我们目前没有这个内置功能。你需要自己定制。

可以通过 API 和 PowerShell 触发管道。您可以编写自己的脚本文件并使用 PowerShell 任务。

然后你可以使用 Rest API 来查询为你上面触发的构建结果。

终于使用了一个任务Conditions

在每个任务的控制选项中,以及在附加选项中 对于发布管道中的作业,您可以指定以下条件 任务或作业将运行哪个。

除非您触发 build PipelineB 的查询结果已完成/成功。然后你可以继续在 Pipeline A 中运行剩下的任务

【讨论】:

  • 谢谢。这就是我现在的做法。但我想看看是否有办法禁用管道 B 上的队列选项,并且只能由特定触发器触发。
  • 嗨@suprasad 它无法通过管道禁用 Web UI 中的队列选项。除非,您设置相关权限“队列构建”以禁用特定用户对构建队列的访问。 Can put a build in the queue through the interface for Team Foundation Build or at a command prompt. They can also stop the builds that they have queued. 更多权限详情请看官方链接:docs.microsoft.com/en-us/azure/devops/organizations/security/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-24
  • 2022-10-25
  • 2021-01-13
  • 1970-01-01
  • 2022-07-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多