【问题标题】:Select artifact for deployment pipeline (YAML)选择用于部署管道 (YAML) 的工件
【发布时间】:2020-01-29 14:58:49
【问题描述】:

我有基于 GUI 的发布管道,用于部署从构建管道生成的工件。 我可以选择我需要部署的工件版本。

如何使用 YAML 管道实现相同的目标?

【问题讨论】:

    标签: azure-devops azure-pipelines


    【解决方案1】:

    这里我同意@Shayki,我知道根据实际需求选择相应的工件非常方便,但是YAML直到现在还不支持你想要的。

    因为,问题出在哪里,它配置的时间是构建执行完成后,而您使用带有经典 UI 的发布,如上图所示。此时,系统可以检测并显示工件历史。

    但是,当您使用multi-stage 配置管道时,构建和发布过程结合在一起。我们正在开发以丰富 YAML 管道的功能,但到目前为止,我们还没有扩展该功能,例如从构建历史记录中收集所有工件信息并在 YAML 配置面板中显示它们。

    因此,如果您现在想通过选择的工件实现类似的功能,则必须对内部版本号进行硬编码。


    如果您不想在 YAML 定义中对 runid 进行硬编码,您可以考虑传递 queue variable 作为解决方法。

    例如:

    - task: DownloadPipelineArtifact@2
      inputs:
        source: 'specific'
        artifact: 'drop'
        path: $(Build.SourcesDirectory)/bin
        project: 'AndroidBuild'
        pipeline: 12
        runVersion: 'specific'
        runId: $(buildid)
    

    在上面的定义中,buildid 是变量,你可以在排队时配置它的值:

    当您想选择另一个工件时,这不需要您对管道进行任何修改,只需在排队时传递值。但是,如您所见,它仍然需要硬编码。


    如果我们可以选择而不是记住和硬编码值,那将是一个很棒的功能。您可以向我们的official forum 提出您的想法,我们的产品团队会定期对其进行审核并考虑将其纳入我们的开发路线图。

    【讨论】:

    • 不,没有必要在同一个 YAML 中包含构建和发布描述。我相信,在两个文件中分开构建和发布管道是可以的。
    • 在这种情况下,从相关的构建管道中获取工件并在 UI 中显示应该不是问题。
    • 我创建了这个功能,请投票:developercommunity.visualstudio.com/idea/901328/…
    • @Evgeniy,已投票。是的,它们可以分成 2 个文件,例如使用模板。但无论如何,最后,您需要将它们组合成一个调用文件。这是迄今为止 YAML 的局限性。但是,相信我们,我们正在努力扩展和丰富 YAML 功能,使其不会与 UI 有太大差异。
    • 好的,现在看来这个交互式选择器已经实现了....即将对其进行测试docs.microsoft.com/en-us/azure/devops/release-notes/2020/…
    【解决方案2】:

    您可以将Download Pipeline Artifacts 任务与runId 输入一起使用:

    # Download an artifact named 'WebApp' from a specific build run to 'bin' in $(Build.SourcesDirectory)
    - task: DownloadPipelineArtifact@2
      inputs:
        source: 'specific'
        artifact: 'WebApp'
        path: $(Build.SourcesDirectory)/bin
        project: 'FabrikamFiber'
        pipeline: 12
        runVersion: 'specific'
        runId: 40
    

    【讨论】:

    • 这不是解决方案。我需要从屏幕截图中的列表中选择,但不是硬编码数字
    • 所以我认为不可能:/
    猜你喜欢
    • 1970-01-01
    • 2019-03-17
    • 2019-11-17
    • 1970-01-01
    • 2022-12-10
    • 1970-01-01
    • 2021-11-19
    • 2020-11-23
    • 2021-08-03
    相关资源
    最近更新 更多