簡體   English   中英

Azure DevOps 多個發布管道,用於單個 CI 構建管道,用於多個功能分支; )

[英]Azure DevOps multiple Release Pipelines for single CI Build Pipelie for multiple Feature Branches ; )

我們最近開始使用 Azure DevOps,我在為 DEV 環境設置發布管道時遇到了麻煩。

當前狀態:

  • 我們有一個包含各種不同 web 項目的解決方案(git 存儲庫)
  • 我們有一個 MAIN 分支並在單獨的功能分支上開發
  • 我有一個 CI 構建管道,它在每次提交到功能分支后自動啟動。
  • 有多個發布管道(針對每個項目)將 CI 功能構建管道的 output 發布到 DEV 環境

問題:

  • CI 構建管道的 output 始終對應於上次提交的功能分支的狀態。 因此,發布管道總是發布最后一個功能分支提交

例子:

開發人員 A 正在為 CarConfigurator 項目開發 ChangeTireColor 功能

開發者 B 正在為 BikeConfigurator 項目開發 ChangeFrameSize 功能

A 提交 --> 觸發 CI 構建

B 提交 --> 觸發 CI 構建

A 現在啟動 CarConfigurator 發布管道

結果:

由於上次提交是針對 BikeConfigurator 項目,因此開發人員 A 所做的更改不在 BuildPipeline 的 output 中,因此 CarConfigurator 的發布對應於舊狀態。

問題:

如何確保 CarConfigurator 發布管道始終發布 CarConfigurator 功能的最新提交? 是否有創建 DEV 分支的替代方法,始終將功能合並到其中,然后使發布管道從 DEV 發布?

您的問題陳述清楚地表明:

CI 構建管道的 output 始終對應於上次提交的功能分支的狀態。 因此,發布管道總是發布最后一個功能分支提交

似乎每個構建似乎都超過了之前的構建。 如果你要這樣做,那么你應該只從一個共享分支構建,正如你提到的:

創建一個 DEV 分支,始終將功能合並到其中,然后使發布管道從 DEV 發布

或者,如果您不想創建共享分支並希望單獨構建每個功能分支,那么一種解決方案是將這些構建工件存儲在其他地方,以便您以后可以獨立部署它們。

吹毛求疵的旁注:我猜這個說法可能並不完全正確:

我有一個 CI 構建管道,它在每次提交到功能分支后自動啟動。

提交通常會在本地進行,因此管道可能會在功能分支上的每次“推送新提交”之后啟動。 (這似乎很明顯,但我建議在此處使用確切的語言以防止任何混淆,特別是對於較新的 Git 用戶。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM