从 Powershell 将环境变量保存回 Team City
Saving an Environment Variable back to Team City from Powershell
我们需要定期 运行 构建配置,其中包括重新创建 tokens/logins 等。我们希望将这些作为环境变量保存回 Team City。我们随后进行的构建将需要查看此环境变量存储并根据需要在我们的配置中进行字符串替换。
我看过了:
##teamcity[setParameter name='env.TEST' value='test']
但是从阅读文档来看,这仅用于在同一构建中的构建步骤之间传递变量。它实际上并没有将变量保存回 Team City。
有什么方法(最好是从 powershell 脚本)调用 Team City 并告诉它添加环境变量(或任何其他变量)。
为了将值保存回参数,您必须调用 REST API。
我使用 PowerShell 脚本作为 PowerShell 3+ 中 Invoke-RestMethod
cmdlet 的包装器,可以在构建步骤中重复使用以实现您想要的效果。
步骤 1.
将脚本保存到 PowerShell 文件并将其添加到源代码管理中 rest-api-wrapper.ps1
步骤 2.
创建一个引用脚本的 PowerShell 构建步骤并传入以下参数,根据您的情况量身定制
%teamcity.serverUrl%/httpAuth/app/rest/projects/project_id/parameters/parameter_name
"Username"
"Password"
"PUT"
"TheValueToSave"
可以在此处找到更多详细信息 - TeamCity Documentation
希望对您有所帮助
我们需要定期 运行 构建配置,其中包括重新创建 tokens/logins 等。我们希望将这些作为环境变量保存回 Team City。我们随后进行的构建将需要查看此环境变量存储并根据需要在我们的配置中进行字符串替换。
我看过了:
##teamcity[setParameter name='env.TEST' value='test']
但是从阅读文档来看,这仅用于在同一构建中的构建步骤之间传递变量。它实际上并没有将变量保存回 Team City。
有什么方法(最好是从 powershell 脚本)调用 Team City 并告诉它添加环境变量(或任何其他变量)。
为了将值保存回参数,您必须调用 REST API。
我使用 PowerShell 脚本作为 PowerShell 3+ 中 Invoke-RestMethod
cmdlet 的包装器,可以在构建步骤中重复使用以实现您想要的效果。
步骤 1.
将脚本保存到 PowerShell 文件并将其添加到源代码管理中 rest-api-wrapper.ps1
步骤 2.
创建一个引用脚本的 PowerShell 构建步骤并传入以下参数,根据您的情况量身定制
%teamcity.serverUrl%/httpAuth/app/rest/projects/project_id/parameters/parameter_name
"Username"
"Password"
"PUT"
"TheValueToSave"
可以在此处找到更多详细信息 - TeamCity Documentation
希望对您有所帮助