2015-11-06 46 views
1

背景如何獲取上次成功構建的版本號?

我有用於安裝和卸載的假象方法第三方Web服務。在安裝和卸載時,都需要指定一個名爲package-%maven.project.version%.zip的工件。在安裝新軟件包之前,我需要卸載以前安裝的軟件包。

解決方案

我發現這個solution,但因爲這是最後一步,實現持續部署,我需要一些自動化的,而不是一個提示。

能夠由生成步驟是自動化的另一個解決方案是利用TeamCity的REST API的:

  1. 呼叫http://localhost/httpAuth/app/rest/builds/?locator=buildType:Development,count:1,status:SUCCESS
  2. 使用建立在從步驟1響應ID調用http://localhost/httpAuth/app/rest/builds/id:[build-id]/resulting-properties
  3. 檢索值來自步驟2中的響應中的以下節點<property name="maven.project.version" value="1.2.3"/>

問題

是否有比使用TeamCity的REST API更簡單的方法?

回答

2

所以,我決定使用TeamCity的REST API從一個PowerShell構建步驟來檢索上次成功構建%maven.project.version%

$client = New-Object System.Net.WebClient 
$client.Credentials = New-Object System.Net.NetworkCredential $username, $password 

$latestBuildUrl = "http://localhost/httpAuth/app/rest/builds/?locator=buildType:Development,count:1,status:SUCCESS" 
[xml]$latestBuild = $client.DownloadString($latestBuildUrl) 
$latestBuildId = $latestBuild.builds.build.id 

$propertiesUrl = "http://localhost/httpAuth/app/rest/builds/id:$latestBuildId/resulting-properties" 
[xml]$properties = $client.DownloadString($propertiesUrl) 
$mavenProjectVersion = $properties.SelectSingleNode("//property[@name='maven.project.version']").value 
1

我認爲你的方法是合理的。

另一種方法是:

  1. 您的構建打印%maven.project.version%到一個文件
  2. 您的構建配置文件發佈爲僞影
  3. 你下載類似/repository/download/BUILD_TYPE_EXT_ID/.lastSuccessful/ARTIFACT_PATH(閱讀更多here

我想這會更容易實現,但有點雜亂(額外的步驟/文件=混亂)。

相關問題