【问题标题】:Teamcity SetParameter doesn't seem to be workingTeamcity SetParameter 似乎不起作用
【发布时间】:2014-04-04 04:13:49
【问题描述】:

作为构建配置的第一步,我尝试动态更改参数并在后续步骤中使用它。网上看了一下,好像这​​个方法是拨打##teamcity[setParameter。但这似乎不起作用。它甚至不会在同一步骤中更改值。

例如,我创建了一个测试参数并将其默认值设置为“1”。在 powershell 脚本中,我尝试将其更改为 2,如下所示。

但输出保持不变,如下所示

我目前使用的是 TeamCity 8.0.3(内部版本 27540)。我究竟做错了什么?

【问题讨论】:

    标签: deployment teamcity


    【解决方案1】:

    编辑:我认为问题可能出在您用于设置参数的命令上。试试:

    Write-Host "##teamcity[setParameter name='TestParameter' value='2']"
    

    --

    我们也遇到过同样的行为。这里的关键是“后续步骤”。 您必须在单独的构建步骤中修改参数,该构建步骤要使用新参数的步骤之前运行。

    据我了解,构建步骤中的所有参数都会在执行该步骤之前立即进行评估。标记将替换为这些参数的 未修改 值。因此,构建代理实际执行的是:

    Write-Host "TestParameter value is 1"
    Write-Host "##teamcity[setParameter name='TestParameter' value='2']"
    Write-Host "TestParameter value is 1"
    

    【讨论】:

    • 不,不是这样。我复制了该步骤并删除了最后两行。这样,我只是“写入托管”TestParameter 值。它仍在打印“1”。事实上,这是我最初遇到的问题,其中一个步骤中的更改没有出现在后续步骤中。
    • 我更新了我的答案以包含一个应该在 PowerShell 中工作的参数更新命令。我认为答案中的其他所有内容都是正确的。
    • 不。它只是将其打印到日志中。我也尝试过在 TestParameter 和 '2' 之间使用 '=' 符号。不去。也不会在后续步骤中更改该值。这就是出现的[10:11:02][Step 1/27] TestParameter value is 1 [10:11:02][Step 1/27] ##teamcity[TestParameter='2'] [10:11:02][Step 1/27] TestParameter value is 1
    • 第三次是魅力;请参阅更新的编辑。我对其进行了测试,它可以更改后续构建步骤的值。
    • 是的。就是这样。我之前尝试过这种组合,但我仍然在同一个步骤中检查,这不像你说的那样工作。但是使用它,它现在在同一步骤中显示相同的值,但在不同的步骤中显示更新的值
    猜你喜欢
    • 1970-01-01
    • 2014-08-17
    • 2021-06-23
    • 2016-11-29
    • 2016-02-01
    • 2020-09-23
    • 2010-12-05
    • 2011-06-14
    • 2015-01-10
    相关资源
    最近更新 更多