【问题标题】:How to release a specific previous build azure pipeline output with azure yaml pipelines如何使用 azure yaml 管道发布特定的先前构建的 azure 管道输出
【发布时间】:2021-05-03 16:39:14
【问题描述】:

我正在尝试将经典 Azure 管道转换为 YAML。

但是,我找不到任何有关如何让环境部署利用以前的构建工件的文档?即,如果我们构建并部署到开发,在测试之后我们如何将构建的完全相同的工件构建到另一个环境(例如集成或暂存槽)?我不想再次进行整个构建,因为如果同时在 master 中进行更改,我们将拥有不同的代码库。

我认为 YAML 管道有可能实现这一点,如果可以,我应该采用这种方法来实现它吗?

【问题讨论】:

  • 这是一个很好的问题,我也很难回答。似乎您可以拥有一个单独的部署管道,该管道可以引用先前的构建工件。在我看来,您需要在部署中添加一个参数并按字面意思插入内部版本号来获取该工件。

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


【解决方案1】:

您的 YAML 管道可以指定它需要的资源。您可以指定现有构建或其他管道。

resources:
  pipelines:
  - pipeline: SmartHotel-resource # identifier for the resource (used in pipeline resource variables)
    source: SmartHotel-CI # name of the pipeline that produces an artifact

见:

作为替代方案,您可以创建多阶段管道。您的管道指定构建和部署步骤的位置:

stages:
- stage: A
  jobs:
  - job: A1
  - job: A2

- stage: B
  jobs:
  - job: B1
  - job: B2 

见:

【讨论】:

  • 使用多阶段管道,我们还必须在将构建部署到任何环境时始终运行构建,对吗?因为在经典管道中,他们有一个发布的概念,您可以在其中获取您想要的任何构建工件并将其部署到任何环境。这意味着您不必在每次部署到环境时都运行构建。所以我的问题是,YAML 管道是否有可能,您不必运行构建(因为您可以选择以前的构建)以便将其部署到任何环境。 @jessehouwing
  • 是的,所以创建一个管道并将资源设置为指向另一个构建或管道(而不是存储库)。如果需要,添加一个参数来设置确切的内部版本号。
【解决方案2】:

YAML 管道是否有可能,如果可以,我应该接近吗 实现这个?

下载工件任务将仅在部署作业的部署挂钩中自动注入。要停止下载工件,请使用 - download: none 或通过指定 Download Pipeline Artifact task 选择要下载的特定工件。

您可以参考有关descriptions of lifecycle hooksArtifacts in release and deployment jobs的文档。

【讨论】:

  • 但由于它是一个多阶段 YAML 管道,我有一个阶段用于构建,另一个阶段用于部署,因此我必须首先运行构建阶段以生成更新的工件。那么如何使用 YAML 中的旧工件(用于部署阶段)而不在同一管道中运行构建。因为 Azure Classic Pipeline 有 2 个构建和发布概念,您可以将任何构建工件版本部署到您选择的任何环境,而无需运行构建管道。使用 YAML 可能吗? @Walter Qian-MSFT
  • @Autogeek 您可以在下载管道工件任务中下载特定版本的工件。如果您已经有可用的工件,则可以跳过构建阶段。
  • 我找不到通过将构建和发布阶段放在 1 个管道中来跳过构建阶段的方法。正如我跳过构建阶段时所说的“确保跳过的阶段不会产生后期阶段所需的任何工件”。但是,我可以通过使用 2 个管道来实现这一点。 1 用于生成构建工件的构建和 1 用于发布阶段的管道,我可以在其中使用资源部分并选择较旧的构建版本并将其部署到发布阶段。我是否缺少多阶段构建发布 YAML 管道的任何内容?谢谢@Walter Qian-MSFT
  • @Autogeek 您可以在构建阶段添加条件。
  • @Walter 我遇到了同样的问题。您能否举个例子或详细说明您将添加到构建阶段的具体条件?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-10
  • 1970-01-01
  • 2021-08-03
  • 2019-02-18
  • 2022-11-10
  • 1970-01-01
  • 2020-11-01
相关资源
最近更新 更多