2016-07-05 15 views
3

我在使用VSTS的CI環境中,我想獲取提交註釋以將其設置爲文本文件。如何在VSTS/TFS構建中檢索Git提交ID和消息?

這裏是我的構建步驟: enter image description here

的想法是複製GIT提交評論到存儲在神器文件夾中的文本文件。然後用HockeyApp SDK,我會在相關說明中設置我的提交評論。

我可以通過命令行操作輕鬆地複製文件,但我不知道如何檢索評論。

回答

3

環境變量$(Build.SOURCEVERSIONMESSAGE)在構建期間設置。您可以直接在任務輸入中使用$(build.SOURCEVERSIONMESSAGE)訪問它。

如果您想在PowerShell腳本或內聯PowerShell腳本中訪問它。您可以通過環境變量訪問它,即Get-Item Env:\BUILD_SOURCEVERSIONMESSAGE

以下腳本將在帶有提交消息的二進制文件夾中創建一個新文件commit.txt。使用內聯類型使用Powershell任務運行腳本。

$message = (Get-Item Env:\BUILD_SOURCEVERSIONMESSAGE) 

$path = (Get-Item Env:\BUILD_BINARIESDIRECTORY).Value + '\commit.txt' 

echo $message > $path 

enter image description here

+0

根據你的例子,我嘗試了一個命令行。工具='回聲'。參數='「$(Build.SOURCEVERSIONMESSAGE)」>「$(build.binariesdirectory)\ $(BuildConfiguration)\ drop \ commitComment.txt」'。我得到了以下錯誤:'[警告]文件名不表示可執行文件的完整路徑。' –

+0

我不認爲它會這樣工作。 BuildConfiguration變量不可用。讓我來制定一個可行的例子。 –

+0

@XavierW。在適用於VSTS的答案中添加了示例。讓我知道它是否有效。 –

0

您可以在構建定義中創建一個Power-shell腳本任務,以獲取提交註釋並通過Rest API將其寫入文本文件。

+0

我不是在電源外殼非常好。你有沒有關於Power-shell和VSTS協同工作的例子或文章? –

2

下面的命令將顯示最新提交ID和提交信息:

git log --pretty=oneline | head -1 
+0

這實際上是最簡單的答案。在我的情況下,Build.SOURCEVERSIONMESSAGE丟失,所以我只是使用「git log head -1」 – rolls

+0

這取決於操作系統,你可以使用它來代替:'git log -1 --pretty = oneline' – Sawtaytoes

相關問題