【问题标题】:Using Rest API to trigger a specific stage within a yaml pipeline使用 Rest API 触发 yaml 管道中的特定阶段
【发布时间】:2022-12-11 13:02:02
【问题描述】:

有没有办法在使用经过批准的环境的正在运行的 yaml 管道中执行特定阶段?

我有一个本地部署和一个本地销毁阶段都有手动批准。

我想做的是使用 rest api 在过去的构建中运行本地销毁阶段。

到目前为止,我取得的成就是为特定的源分支按降序获取 10 个最近的构建,我们称它为 feature/on-prem-enterprise。然后我进行一些解析并找到过去部署成功但失败、取消或跳过销毁阶段的构建,使用来自时间线端点的这些结果,我想使用 rest api 在这些构建中运行/重新运行销毁阶段。

我们遇到了这样一种情况,我们有多个部署,但没有人手动运行销毁阶段,并且由于该管道在所有开发人员之间共享以进行开发构建,因此很难手动找到那些较旧的构建。

如果无法实现,那么其他解决方案可能是编译此构建列表并发送电子邮件,但更希望在这里减少人工干预。

【问题讨论】:

    标签: azure-devops-rest-api azure-pipelines-yaml


    【解决方案1】:

    有没有办法在使用经过批准的环境的正在运行的 yaml 管道中执行特定阶段?

    答案是肯定的。

    您可以使用带有以下请求正文的 REST API Runs - Run Pipeline 来跳过其他阶段以触发您想要的阶段:

    POST https://dev.azure.com/{organization}/{project}/_apis/pipelines/{pipelineId}/runs?api-version=6.0-preview.1
    

    请求正文:

    {
        "stagesToSkip":["Dev","Test"]
    }
    

    邮递员测试结果:

    管道运行的测试结果:

    【讨论】:

    • 这没有回答我的问题。您提供的解决方案创建了一个新的运行。我需要做的实际上是在等待某人进入并手动批准该阶段的构建中触发一个阶段。这是管道中的最后阶段之一。我想知道是否可以使用 rest api 来完成。
    • @Art,我明白了。感谢您的回复。但我不认为我们现在可以这样做,有一些用户的声音:developercommunity.visualstudio.com/t/…developercommunity.visualstudio.com/t/…
    【解决方案2】:

    您可以使用 Stages - Update REST API 方法。这是构建资源方法的一部分,但也适用于 YAML 管道。

    PATCH https://dev.azure.com/{organization}/{project}/_apis/build/builds/{buildId}/stages/{stageRefName}?api-version=7.1-preview.1
    

    听起来您已经以编程方式获得了buildIdstageRefName 是 YAML 中定义的阶段名称。您的 URI 将类似于:

    https://dev.azure.com/myorg/myproject/_apis/build/builds/1234/stages/DestroyStageName?api-version=7.1-preview.1
    

    在请求正文中,您需要:

    {
        forceRetryAllJobs = $false
        state = 1 # state 1 is retry
    }
    

    forceRetryAllJobs 可能是不必要的。 PowerShell here 中有一个示例实现。

    如果您正在努力确定合适的 API 方法来复制您在 Azure DevOps GUI 中执行的操作,打开浏览器的调试器工具并检查网络选项卡中的请求通常可以帮助您确定正在使用的调用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-02
      • 1970-01-01
      • 1970-01-01
      • 2020-07-06
      • 1970-01-01
      • 2022-11-10
      • 2021-11-10
      • 1970-01-01
      相关资源
      最近更新 更多