我在使用VSTS的CI環境中,我想獲取提交註釋以將其設置爲文本文件。如何在VSTS/TFS構建中檢索Git提交ID和消息?
的想法是複製GIT提交評論到存儲在神器文件夾中的文本文件。然後用HockeyApp SDK,我會在相關說明中設置我的提交評論。
我可以通過命令行操作輕鬆地複製文件,但我不知道如何檢索評論。
我在使用VSTS的CI環境中,我想獲取提交註釋以將其設置爲文本文件。如何在VSTS/TFS構建中檢索Git提交ID和消息?
的想法是複製GIT提交評論到存儲在神器文件夾中的文本文件。然後用HockeyApp SDK,我會在相關說明中設置我的提交評論。
我可以通過命令行操作輕鬆地複製文件,但我不知道如何檢索評論。
環境變量$(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
您可以在構建定義中創建一個Power-shell腳本任務,以獲取提交註釋並通過Rest API將其寫入文本文件。
我不是在電源外殼非常好。你有沒有關於Power-shell和VSTS協同工作的例子或文章? –
下面的命令將顯示最新提交ID和提交信息:
git log --pretty=oneline | head -1
這實際上是最簡單的答案。在我的情況下,Build.SOURCEVERSIONMESSAGE丟失,所以我只是使用「git log head -1」 – rolls
這取決於操作系統,你可以使用它來代替:'git log -1 --pretty = oneline' – Sawtaytoes
根據你的例子,我嘗試了一個命令行。工具='回聲'。參數='「$(Build.SOURCEVERSIONMESSAGE)」>「$(build.binariesdirectory)\ $(BuildConfiguration)\ drop \ commitComment.txt」'。我得到了以下錯誤:'[警告]文件名不表示可執行文件的完整路徑。' –
我不認爲它會這樣工作。 BuildConfiguration變量不可用。讓我來制定一個可行的例子。 –
@XavierW。在適用於VSTS的答案中添加了示例。讓我知道它是否有效。 –