情景:
需要Teamcity "setParameter"
中的Configuration Variable
,因此我可以在下次执行build step
时使用该值。
我已经设置了一个脚本:
export current_build_date_format="+%%Y-%%m-%%d"
export current_build_date="$(date $current_build_date_format)"
echo "##teamcity[setParameter name='latestDeploymentDate' value='$current_build_date']"
当我在以下步骤中回显%lastestDeploymentDate%
时,它会正确打印出'2016-11-07'
但是,当我去查看Teamcity中参数的值时,该值仍然是最初的值。
我正在build agent
上运行脚本not on the same server
作为Teamcity。这可能是我得到这种行为的原因吗?或者'setParameter'
是不是要永久存储?
提前致谢
答案 0 :(得分:2)
事实证明,echo "##teamcity[setParameter name='parmname' value='value']"
仅在内存中设置参数""意思是,在构建步骤运行后,值仍然是相同的。
相反,您需要做的就是永久更新参数,就是使用Teamcity的REST API。
要使用REST api,您需要拥有一个可以在构建脚本中使用的用户帐户。
以下是如何使用用户名/密码更新参数的示例:
export current_build_date="$(date +%%Y-%%m-%%d" "%%H:%%M)"
curl -v --request PUT -d "$current_build_date" --Header "Content-Type: text/plain" http://username:password@your-teamcity-url/httpAuth/app/rest/projects/your-build-configuration-id/parameters/latestDeploymentDate
就个人而言,我不喜欢在构建配置中使用用户名/密码。但是可以在TC代理上进行设置,这样就可以避免这样做。