2017-09-13 44 views
2

VSTS構建定義是否有任何方式來詢問git提交消息,並且只有在任何提交消息包含預定義文本時才觸發?如果提交消息包含文本,則觸發構建

另外,如果預定義文本不存在於任何提交消息中,是否有可能在構建定義中有一個任務來停止構建?

+0

您是否用jessehouwing的解決方案解決了這個問題? –

+0

是的,我只是將它標記爲答案 – Slicc

回答

1

這是一個問題兩個部分:

  1. 沒有,對提交信息不過濾。
  2. 是的,這樣做比較容易,但不能保證每次提交都會觸發構建,因爲可以按組推送多個提交。當構建正在進行時,服務器端批處理可能會批量提交。

您可以插入一個小腳本執行git log -1 --pretty=%B並檢查輸出;然後使用特殊的日誌記錄格式來使構建失敗。例如,在PowerShell中會記錄錯誤和失敗的構建:

Write-Host "##vso[task.logissue type=error;]Build token missing, aborting." 
Write-Host "##vso[task.complete result=Failed;]Cancelled" 

有關特殊命令的詳細信息,請參閱:https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md

的混帳命令只工作在構建流水線,信息除非您在發佈期間實際克隆回購,否則不在發佈管道中提供。

您可以將構建版本設置爲包含某種類型的後綴作爲構建的一部分,然後在發佈管道中使用該信息。相同的魔法命令包括一個設置Build.BuildNumber:

Write-Host "##vso[build.updatebuildnumber]1.1.7-Release" 

然後在您的發佈管道中,檢查版本號。

或者在構建定義中使用Trigger a Release任務,並根據您已經創建的PowerShell的輸出使其執行條件有效。

相關問題