Below you will find pages that utilize the taxonomy term “GitHub Workflow”
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 來自動化:
October 22, 2023
使用 GitHub Workflow 定期下載新北市實價登錄資料,以及使用 Google Geocoding API 將地址轉換為經緯度
前言 最近想要抓實價登錄的資料來看,但是懶得去找可以免費 setup Server 的服務,但如果沒有一直在跑的 Server 怎麼去跑 Cron Job 來更新資料以及確保資料有被存放呢? 於是就想說試試 GitHub Workflow 能不能達成這件事 XDD
如何設計 GitHub Workflow 基本上設計流程如下
Trigger Workflow by Schedule Run download-data Script Commit and push changes Trigger Workflow by Schedule 我們可以使用官方提供的 events-that-trigger-workflows#schedule ,來達到這個方式,他的時間結構如下
* * * * * ┬ ┬ ┬ ┬ ┬ │ │ │ │ └─ 星期 (0 - 6) │ │ │ └─── 月份 (1 - 12) │ │ └───── 月中的某天 (1 - 31) │ └─────── 小時 (0 - 23) └───────── 分鐘 (0 - 59) 因為實價登錄是每 10 天更新,但我避免誤差,所以設定成每個月的 02 / 12 / 22 號,因此我們的 Workflow 一開始會長這樣