如何用 GitHub Workflow 實現 GitHub Merge Freeze 自動化
當前狀況 公司現行採用 GitHub Flow 進行分支管理。雖然我們大致上每週 Release 新版本,但有時會因 Hotfix 或功能實驗,導致 Release 節奏被打亂,產生以下問題:
main branch 可能被提前合併未來要 Release 的功能 若上線後需修正,又要 revert 其他功能或暫時禁止合併 需要人工確認各種狀態,流程繁瑣且易出錯 為了解決這些問題,我們導入了所謂的「GitHub Merge Freeze」機制,也就是在 Release 期間,透過 GitHub Actions 自動凍結 main branch,確保版本穩定。
解決方案:Release PR + Merge Freeze 我們優化後的流程如下:
每次 Release 時建立 Release PR,將本次要上線的功能統一合併,Release 完再 merge 回 main。 Release PR 存在期間,main branch 禁止合併任何新的 PR,僅能合併到 release branch。 這麼做的好處: 所有 Release 內容一目了然,方便查驗和追蹤 自動 freeze main branch,開發者一目瞭然,降低溝通成本,避免誤合併 如何自動 Freeze Main Branch? GitHub 原生僅支援 手動鎖定分支,並無自動 freeze 功能。因此,我們設計兩個 GitHub Workflow 來自動化:
read more