【问题标题】:Update Variable in TeamCity powershell script更新 TeamCity powershell 脚本中的变量
【发布时间】:2014-08-01 08:52:06
【问题描述】:

我正在尝试使用 Powershell 脚本更新 TeamCity 中的环境变量。但是,它不会更新变量的值。我怎样才能做到这一点?

以下是我当前的代码,它可以很好地获取 currentBuildNumber:

$currentBuildNumber = "%env.currentBuildNumber%"
$newBuildNumber = ""
Write-Output $currentBuildNumber
If ($currentBuildNumber.StartsWith("%MajorVersion%") -eq "True")
{
 $parts = $currentBuildNumber.Split(".")
 $parts[2] = ([int]::Parse($parts[2]) + 1) + ""
 $newBuildNumber = $parts -join "."
}
Else
{
 $newBuildNumber = '%MajorVersion%.1'
}

//What I have tried
$env:currentBuildNumber = $newBuildNumber
Write-Host "##teamcity[env.currentBuildNumber '$newBuildNumber']"
Write-Host "##teamcity[setParameter name='currentBuildNumber' value='$newBuildNumber']"

【问题讨论】:

标签: powershell teamcity teamcity-8.0


【解决方案1】:

试试

"##teamcity[setParameter name='env.currentBuildNumber' value='$newBuildNumber']"

(注意名称中的 env. 前缀)

此外,您可以尝试增加 PowerShell 标准输出列默认值(使用 TeamCity 的命令运行程序为 80)。如果您的服务消息比这长,那么 TeamCity 将无法解析它。

if ($env:TEAMCITY_VERSION) {
    $host.UI.RawUI.BufferSize = New-Object System.Management.Automation.Host.Size(8192,50)
}

【讨论】:

  • 对不起我的错所有的名字都是一样的它仍然不起作用参考我更新的问题
  • 您确定需要 WriteHost 吗?用引号试试吧
  • 很快就会试一试,但是 Write-Host "##teamcity[buildNumber '$newBuildNumber']" 有效
  • 我刚刚在本地运行了一个测试,并且双引号服务消息确实更新了环境变量...
  • 我已经更新了我当前的代码,但它不能正常工作我的代码和你测试它时工作的代码有什么不同?
猜你喜欢
  • 2020-12-09
  • 2015-11-18
  • 2017-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-08
相关资源
最近更新 更多