2016-11-07 32 views
0

場景:的TeamCity - 的setParameter不更新值永久存儲在參數

需要以TeamCity的Configuration Variable"setParameter",這樣我就可以使用這個值執行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']" 

當我在下面的步驟呼應​​,它正確地打印出例如'2016-11-07'

但是,當我去看看參數的值Teamcity的價值仍然是最初的。

我在build agent上運行腳本not on the same server作爲Teamcity。這可能是我得到這種行爲的原因嗎?或者是'setParameter'不是爲了永久存儲?

在此先感謝

回答

0

事實證明,只有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:[email protected]/httpAuth/app/rest/projects/your-build-configuration-id/parameters/latestDeploymentDate 

個人而言,我不喜歡在集結結構中的用戶名/密碼。但是可以在TC代理上進行設置,這樣就可以避免這樣做。