【问题标题】:Is it possible to forward an azure artifact from one pipeline to another?是否可以将 azure 工件从一个管道转发到另一个管道?
【发布时间】:2020-09-17 16:27:29
【问题描述】:

我正在做一个项目,我希望中间管道使用来自另一个管道的工件,然后将其转发到另一个管道,然后该管道开始运行。我还没有设法在线找到此功能的解决方案,并且我开始认为 Azure DevOps 不支持该功能(截至今天)。有人可以确认管道是否可以实现此实施?如果不是,应该如何处理这种情况?我对 Azure DevOps 比较陌生,所以我可能错过或误解了一些在线信息。

我知道一个管道可以下载由另一个管道发布的工件。我知道管道触发器。目前我已经设法在中间管道中使用工件,但现在我必须找到一种方法将这些工件从中间管道发送到特定管道。

感谢我能得到的所有帮助。

【问题讨论】:

    标签: azure azure-pipelines devops azure-artifacts


    【解决方案1】:

    但现在我必须找到一种方法将这些工件从中间管道发送到特定管道。

    我们可以通过中间管道中的Publish Build ArtifactsPublish Pipeline Artifacts 任务从中间管道 构建工件,然后我们使用Download Build Artifacts 或@ 特定管道中的 987654324@ 任务以下载我们从中间管道发布的工件。

    您可以查看此文档Publish and download artifacts in Azure Pipelines 了解更多详细信息。

    更新:

    您是否知道此功能是否计划用于 Azure DevOps?要是我们 这么说吧——我的中间管道是否有可能, 根据一些变量,触发特定的管道(即它可以 触发两个不同的管道,但要触发哪一个取决于 一些变量)?

    答案是肯定的。有一个扩展Trigger Build Task,可以用来触发一个新的Build,这样build-chaining是可能的。

    我们只需要添加变量的值作为这个任务的条件,然后我们可以根据一些变量触发特定的管道。

    此特定管道在另一个项目中的位置。难道也是 此管道可以访问我在其中创建的变量 我的中间管道?

    我想我可能理解您想要实现的目标。您想在中间管道中创建一些变量,然后在特定管道中使用这些变量。

    答案是肯定的。但是没有直接的方法可以访问您在中间管道中创建的变量。解决方案我们需要为特定管道中的变量设置默认值,然后使用 REST API Definitions - Update 更新中间管道中的这些变量。

    请查看my previous thread 了解详细的 REST API 脚本。

    【讨论】:

    • 感谢您花时间回答这个问题。您是否知道此功能是否计划用于 Azure DevOps?如果我们这样说 - 我的中间管道是否有可能根据某些变量触发特定的管道(即它可以触发两个不同的管道,但触发哪一个取决于某些变量)?此特定管道在另一个项目中的位置。该管道是否也可以访问我在中间管道中创建的变量?
    • 感谢您更新的答案。看起来这将是我将采取的路线,因为我最初的想法似乎不适用于 Azure DevOps 中的当前功能。但是这个解决方案可以。
    【解决方案2】:

    据我所知,解决方案是添加 Azure Artificats 来存储管道 1 的输出,然后在管道 2 中下载工件。

    https://docs.microsoft.com/en-us/azure/devops/artifacts/overview?view=azure-devops

    【讨论】:

    • 感谢您抽出宝贵时间回答这个问题。我同意你的看法,目前这似乎是解决这个问题的唯一方法。我希望有一个更优雅的解决方案。
    猜你喜欢
    • 2021-01-13
    • 1970-01-01
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-14
    • 1970-01-01
    • 2020-10-13
    相关资源
    最近更新 更多