我有一个构建管道,假设 A - 在文件夹中存储一个文件(该文件具有在该构建管道中设置的变量值)。此管道 A 触发另一个管道 B,该管道 B 使用发布工件任务将该文件夹发布为工件。但文件夹名称是动态的,因为它是从管道 A 中的该文件中获取的。我需要在触发它时将具有该变量值的文件从管道 A 传递到管道 B。有没有办法在 Azure DevOps 中执行此操作,而不使用 yaml 管道?
我有一组使用经典模式设置的复杂管道,将它们全部转换为 yaml 需要很长时间,所以想知道是否有任何解决办法。
如果您需要通过在管道 B 的触发器部分下添加管道 A 来触发构建,我认为没有一种干净的方法可以做到这一点。
考虑使用 REST API 在管道 A 完成时触发管道 B。这样,您就可以将“文件路径”作为管道 B 上的变量并将其传递到
parameters
集合中。
类似:
POST https://dev.azure.com/{organization}/{project}/_apis/build/builds?ignoreWarnings={ignoreWarnings}&checkInTicket={checkInTicket}&sourceBuildId={sourceBuildId}&api-version=5.0
{
"definition": {
"id": 1234
},
"parameters": "{\"fileName\":\"yourfilename\"}"
}
查看Builds - Queue文档以获取更多信息。