使用Azure CLI在ADO PR上的触发器/队列构建策略管道

8wtpewkr  于 2023-11-21  发布在  其他
关注(0)|答案(1)|浏览(158)

在Azure DevOps(ADO)上的存储库中,我在主分支上有一个构建验证策略,希望合并到主分支的PR必须首先完成一个成功的Azure管道运行。
我想使用Azure CLI来触发此构建验证管道。
我知道我可以用az pipelines runaz pipelines build queue触发这个管道,并用--branch参数指向我的PR,如az pipelines build queue --branch "refs/pull/123/merge" --definition-id 456
然而,当我这样做时,管道运行不计入PR的构建验证。也就是说,即使我的管道成功,它也不会反映在我的PR中,我仍然不能合并我的更改。
我如何使用Azure CLI触发我的管道,以便它计入我的PR的构建验证?我正在寻找Azure CLI,相当于单击PR管道上的“队列”按钮(图片取自此评论):


的数据

1u4esq0p

1u4esq0p1#

尽管az pipelines命令组似乎是寻找此功能的明智之处,但实际上您需要使用az repos命令组。
特别是,您需要使用az repos pr policy命令来触发管道,并将其计入PR的构建验证。
然而,要做到这一点,你首先需要确定你的构建验证的评估ID。我无法通过ADO的UI确定此ID。但是,可以通过Azure CLI找到它:

  1. az repos pr policy list --id <YOUR-PR-NUM-HERE>

字符串
与其手动解析所有输出的JSON,如果你觉得勇敢的话,你可以尝试使用以下命令提取评估ID(尽管我不知道它有多健壮):

  1. az repos pr policy list --id <YOUR-PR-NUM-HERE> --query "[?configuration.type.displayName=='Build'].evaluationId"


您的评估ID将是一个长的字母数字字符串,用连字符分隔。它看起来像:d2hr35yd-9fe0-y4t5-hb35-5een2cr04b2
一旦你有了构建验证的评估ID,你就可以继续并根据你的PR触发你的管道:

  1. az repos pr policy queue --evaluation-id <YOUR-EVAL-ID-HERE> --id <YOUR-PR-NUM-HERE>


在实践中,这可能看起来像这样:

  1. az repos pr policy queue --evaluation-id d2hr35yd-9fe0-y4t5-hb35-5een2cr04b2 --id 735


这将根据您的PR运行您所需的构建管道,就像您在ADO UI中单击了“队列”按钮一样。
如果你真的很想把它作为一个一行程序(我个人不提倡),下面的内容可能会给予你你想要的:

  1. az repos pr policy queue --evaluation-id $(az repos pr policy list --id <YOUR-PR-NUM-HERE> --query "[?configuration.type.displayName=='Build'].evaluationId | [0]") --id <YOUR-PR-NUM-HERE>

展开查看全部

相关问题