【问题标题】:How can I automatically link variable groups and agent pool when import release definitions to Azure DevOps?将版本定义导入 Azure DevOps 时,如何自动链接变量组和代理池?
【发布时间】:2018-10-04 16:10:48
【问题描述】:

我们将发布定义保存在外部存储库中,并经常将它们导入 Azure DevOps。这样做时我们注意到的两件事是我们必须手动执行:

  1. 指定要使用的代理池,即使在导出定义时指定的代理池仍然存在。
  2. 重新链接变量组,即使定义中指定的组仍然存在且未修改。

有没有办法让这些东西在导入时自动连接起来?当我克隆原始管道时,我不必指定这些值,所以我希望有某种类似的导入机制。

【问题讨论】:

  • 这个要求可能是由 YAML 提出的,用于在 3 月左右的某个时间发布预览版。

标签: azure-devops azure-pipelines azure-pipelines-release-pipeline


【解决方案1】:

没有任何方法可以实现这一点,这是设计使然。

一般来说,如果在当前团队项目中,您可以直接克隆发布定义,这将包括代理池和变量组。

Export/Import 用于不同的项目或不同的集合,甚至是跨帐户。一般来说,不同的团队项目或集合或账户有不同的代理池和变量组,我们需要单独指定。

【讨论】:

  • 标记为已接受,但很不幸。克隆方法的问题在于,如果删除了原始版本定义,它就会永远消失。这很容易做到。将其导出并将 JSON 保存在存储库中至少可以恢复原始定义(并在较小程度上进行版本化,即使 Azure DevOps 有这种机制)。此外,如果代理池和变量组确实存在,那么导入不像克隆那样工作有点愚蠢。为什么导入和克隆的行为不相似似乎是一个糟糕的设计决策......
【解决方案2】:

在 TFS 升级期间,我需要导入 > 200 个发布管道。不得不手动设置部署组会很痛苦,所以虽然不理想,但我确实找到了解决它的方法。

  1. 导出发布定义
  2. 删除发布定义
  3. 导入发布定义
  4. 更新部署组和/或链接变量组
  5. 显示调试控制台并观察网络流量
  6. 保存发布定义
  7. 发布定义只是调用发布 api,因此您可以获取请求 json 并将其保存到文件中

在您将 json 放入文件后,不要使用前端来添加发布定义,而是调用 release definition API 并传递您保存的 json 的内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多