【问题标题】:Azure default variables not evaluated in expressionAzure 默认变量未在表达式中求值
【发布时间】:2023-03-12 09:50:02
【问题描述】:

我需要在构建过程中找到一些变量并将其替换到配置文件中。我正在使用vsts-regex-tasks 来执行此操作。它适用于用户创建的变量,但在尝试引用 Azure defined variables 时,似乎没有对变量进行评估。有什么想法吗?

Example
Find: "RELEASE_NAME"
Replace With: "$(Release.ReleaseName)"
Result: "$(Release.ReleaseName)"

编辑:

我试图在构建管道中使用 Release 变量,而我使用的插件无法读取任何 Azure 定义的变量,切换到“替换令牌”就像一个魅力并减少了替换的构建步骤数多个变量。

【问题讨论】:

  • 嗨,最近怎么样?您使用哪种方法?以下解决方案是否可以帮助您现在成功替换变量?如果是,您可以接受它,这样它可以让其他 SO 用户知道它是否有效。如果没有,请不要犹豫,在这里发表评论。那么我们仍然可以为您提供帮助。

标签: azure azure-devops azure-pipelines


【解决方案1】:

首先,如果您用于应用带有变量$(Release.ReleaseName) 的表达式的方法是在YAML 中,恐怕不能在YAML 定义中表述释放变量。虽然我们将发布定义集成到 YAML 中,但实际上它的环境仍然属于 Build

请参阅此doc 中的注意

所有这些发布变量仅适用于 Classic 发布管道。

当您尝试使用 YAML 定义和配置发布管道时,只能对 doc 中列出的变量进行表述。


但是,如果您使用的配置类型是 classic 而不是 YAML,则应首先检查 Search Paths to Input Files 的值。正常情况下,这个问题都可以从日志中查到。

这里我的项目是一个Jmeter测试项目,它的配置文件是WebservicePerformanceTest.jmx。现在,我的示例将这个.jmx 文件中的一个服务端口名称替换为$(Release.ReleaseName)

下面是我本地发布的结果,可以看到替换变量成功了。

另外,还有一个任务也可以实现你想要的:Replace token。详细使用步骤可以参考my previous answer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-26
    • 1970-01-01
    • 2010-11-22
    • 2011-08-27
    • 1970-01-01
    • 1970-01-01
    • 2018-10-18
    • 1970-01-01
    相关资源
    最近更新 更多