我的團隊正在使用VSTS Build &發佈機制,結合拉取請求分支安全設置,以便代碼只能在拉取請求完成時合併。VSTS發佈拉取請求生成觸發器
我們正在經歷一些奇怪的事情,因爲當創建一個拉取請求(並且生成一個生成證明提交的時候) - 由pull請求觸發的這個構建的完成也間接地觸發了釋放,因爲我們有一個釋放觸發器設置。
這本身可能是好的,但是接下來發生的事情是'完成'拉請求,另一個版本&發佈週期發生!
有沒有辦法讓VSTS釋放觸發器只在拉取請求完成並且合併到發佈分支時才啓動?
謝謝!
我的團隊正在使用VSTS Build &發佈機制,結合拉取請求分支安全設置,以便代碼只能在拉取請求完成時合併。VSTS發佈拉取請求生成觸發器
我們正在經歷一些奇怪的事情,因爲當創建一個拉取請求(並且生成一個生成證明提交的時候) - 由pull請求觸發的這個構建的完成也間接地觸發了釋放,因爲我們有一個釋放觸發器設置。
這本身可能是好的,但是接下來發生的事情是'完成'拉請求,另一個版本&發佈週期發生!
有沒有辦法讓VSTS釋放觸發器只在拉取請求完成並且合併到發佈分支時才啓動?
謝謝!
我們可以在發佈觸發器上指定分支過濾器,這樣只有主版本纔會觸發發佈。 PR驗證構建是在不同的分支中完成的。批准後,分支合併到主控中,這就是您想要觸發發佈的構建。令人煩惱的是,他們不停地移動東西。在撰寫本文時,編輯發行版時,在管道下的工件下的工件上,內部有一個帶有閃電的圓圈,工具提示指出「連續部署觸發器」 - 單擊它。在右側,如果啓用了觸發器,您會看到「構建分支過濾器」。點擊「+添加」並選擇主分支。保存發佈定義。
至於構建做不同的事情,我們現在可以設置任務的條件,以便您可以讓一個任務只在PR驗證版本上運行,或者只在主版本上運行。
https://docs.microsoft.com/en-us/vsts/build-release/concepts/process/conditions
這個解決方案肯定會起作用,但它並不像我想的那麼優雅。這裏有兩個問題 - 首先我們創建了一個構建重複,這很難維護。其次,門控版本可能會有一些不必再次運行的步驟,例如lint和test(因爲它們剛剛在相同的代碼上成功運行)。但是,分離工件創建還需要再次運行來自門控構建的一些構建步驟。我的問題是 - 您可以提供一個解決方案,在門控和CI構建之間不存在任務重複? – kDar