如何在TeamCity中获取当前构建ID并传入脚本?
解决TeamCity构建ID传递及代理兼容问题
先处理代理兼容错误
你遇到的「没有兼容代理可运行此构建」问题,根源是Setup构建步骤错误添加了对system.teamcity.build.id的隐式依赖。这个参数是TeamCity服务器生成的构建级参数,不属于代理的固有属性,所以没有代理能满足该要求。
- 进入TeamCity的构建配置页面,找到Setup步骤
- 检查「Agent Requirements」(代理要求)部分,删除对
system.teamcity.build.id的要求,即可解决代理兼容问题
正确传递构建ID到脚本
你需要的带#的构建ID(如#2594),可以通过以下方式实现:
- 如果是在构建步骤的脚本框中直接编写bash代码,可直接拼接#号和TeamCity的构建号参数:
if [ $? != 0 ]; then python store_test_artifacts.py --buildId "#%system.build.number%" fi - 也可以用TeamCity自动生成的环境变量(参数名转为大写下划线格式):
if [ $? != 0 ]; then python store_test_artifacts.py --buildId "#$BUILD_NUMBER" fi - 若你的bash脚本是独立文件,需在构建步骤的命令行中手动传入参数,再在脚本内接收:
构建步骤命令行写:
脚本内获取参数:bash your_script.sh %system.build.number%if [ $? != 0 ]; then python store_test_artifacts.py --buildId "#$1" fi
内容的提问来源于stack exchange,提问作者Stein
相关产品推荐
相关产品推荐

