Below you will find pages that utilize the taxonomy term “DevOps”
June 9, 2025
如何用 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 來自動化: