【问题标题】:VSTS : Can I access the Build variables from Release definition?VSTS:我可以从发布定义中访问构建变量吗?
【发布时间】:2018-11-27 00:53:50
【问题描述】:

在 VSTS CI/CD 中,我在 CI 的 Powershell 任务中设置了一些变量的值。 在 CD 期间,我想访问该变量的值来做某事,比如说 echo。

这可能吗?如果是这样,怎么做?

【问题讨论】:

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


    【解决方案1】:

    您可以将其写入 json/xml 文件,并将该文件包含在构建定义的已发布工件中。然后在发布定义中通过 PowerShell 读入该文件。

    ConvertTo-Json | Out-File "file.json"
    Get-Content "file.json" | ConvertFrom-Json

    【讨论】:

      【解决方案2】:

      对于 VSTS 本身,它不能持久化从构建到发布的变量。

      一种解决方法是将变量的值存储在变量组中并将变量组链接到您的发布定义中。详细步骤如下:

      此外,如果为您的发布定义构建工件类型,您还可以将变量值存储在文件中,然后将文件作为构建工件发布(如 Calidus 所说)。

      【讨论】:

      • 如果您发布多个版本,这不会导致潜在问题吗?因为最后一次构建会覆盖上一次构建的变量。
      • 是的,有可能在释放解析变量之前的值之前覆盖变量。我更新了我的答案以在构建定义中创建变量组,并在发布定义中将其删除。然后将值保存以传输。
      • 现在可以成功地将变量从构建转移到发布吗?
      【解决方案3】:

      查看 Azure DevOps 扩展 Variable Tools for Azure DevOps Services

      在“构建管道”中,您可以使用“保存变量”创建 JSON 文件。此文件需要作为工件或与现有工件一起发布。

      在“发布管道”中,您可以使用 JSON 文件中的“加载变量”恢复变量。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-04
        • 2016-03-06
        • 1970-01-01
        • 2019-01-27
        • 2014-03-06
        • 1970-01-01
        相关资源
        最近更新 更多