GitHub Actions macOS 14 Runner 退役前,怎麼查全遺留工作流?2026 清單

GitHub 官方公告:macOS 14 Runner 映像預定於 2026 年 11 月 2 日退役,受影響標籤包括 macos-14、macos-14-large 與 macos-14-xlarge。退役公告

症狀 → 只在預設分支搜尋 YAML,會漏掉複用工作流、動態標籤及沒有近期執行紀錄的任務。
最快解法 → 建立涵蓋組織、倉庫、設定來源和實際執行紀錄的清單,再按工作負載驗證替代標籤;單次文字搜尋不能作為全組織盤點完成的證明。

最後更新於 2026 年 10 月 8 日;退役日期、受影響標籤及 brownout 計畫核對自 GitHub 官方公告。

本文適合需要清查 GitHub Actions 組織依賴的管理員,以及負責 iOS/macOS CI 和建置基礎設施的平台工程負責人。
如果你要確認建置、測試或發布任務是否已驗收,也可以直接使用下文的工作流證據清單。

退役範圍要怎樣界定,才不會漏掉工作流?

退役公告列出三個受影響標籤:macos-14、macos-14-large 和 macos-14-xlarge。這是託管 Runner 映像的退役資訊,不應推論為使用自託管 Mac 的任務也會在同一日期停止運作。標籤清單、退役日期及公告中的替代建議,應以官方退役公告為準。

盤點時先界定「哪些東西在範圍內」,再開始搜尋。至少要記下組織內納入的倉庫、預設分支與仍受維護的工作流,並註明未檢查的倉庫、封存狀態不明的專案,以及因權限不足無法讀取的資料。把這些排除項目寫出來,才能區分「確認沒有依賴」與「目前無法確認」。

核對項目 要確認的內容 可留下的證據
受影響標籤 搜尋公告列出的三個標籤,並記錄直接命中位置 標籤、倉庫路徑、工作流檔案位置
倉庫範圍 列出納入盤點的倉庫、維護狀態及未檢查項目 倉庫清單、排除理由、檢查時間
分支與觸發方式 留意非預設分支、定時任務、手動觸發及條件式觸發 分支或事件、工作流名稱、可查執行結果
Runner 替代方案 按公告核對建議標籤,再以實際專案驗證 來源公告、遷移差異、驗收結果

搜尋可從程式碼平台的程式碼搜尋、版本庫複製後的批次搜尋或內部索引開始;工具選擇不是盤點完整性的證明。尤其當倉庫分散在不同團隊、權限範圍或管理群組時,你需要一份倉庫母體清單作為分母,並逐項標出狀態,不能只列出搜尋結果。

設定來源完整度:從工作流一路追到標籤值

runs-on 的值可能直接寫在工作流檔案,也可能透過變數、矩陣或表達式產生。GitHub 的工作流語法文件說明工作流與工作項目的設定方式;Runner 選擇文件則說明如何指定執行工作的 Runner。盤點不能只搜尋一種字串寫法,而要沿設定資料流檢查實際值如何到達工作項目。

設定來源 檢查位置 常見漏查原因
工作流內直接指定 jobs.<job_id>.runs-on 只掃描部分檔案或分支
複用工作流 被呼叫的工作流及呼叫端輸入 只修改呼叫端,沒有檢查共用定義;或反過來只改共用定義
矩陣與表達式 matrix、上下文和運算式所組成的值 搜尋不到完整 Runner 標籤字串
產生或模板化設定 產生器、範本與輸出的工作流檔案 只檢查產出物,沒有記錄真正的設定源頭

對複用工作流,請同時列出定義端和呼叫端。GitHub 的複用工作流文件可供核對工作流重用方式;若 Runner 值來自上下文或表達式,則需追查其取值來源及展開結果,可參考上下文文件與運算式文件。

為每筆命中保留倉庫路徑、工作流名稱、標籤來源和實際消費位置。如此一來,接手盤點的人能由清單回到設定源頭,判斷該改共用模板、呼叫參數,還是產生設定的程式,而不是在執行失敗後才追查誰覆寫了標籤。

執行紀錄可追溯性:靜態命中還要對照實際工作

文字掃描回答的是「設定中可能出現什麼」,執行紀錄回答的是「哪些工作流實際跑過」。兩者不能互相取代:某項任務沒有近期失敗,不代表它不使用舊 Runner;某個工作流檔案出現舊標籤,也不代表該分支或觸發方式已經跑過遷移測試。

盤點線索 需要查證 記錄方式
靜態命中 標籤是否由表達式、矩陣或共用工作流提供 記錄來源、消費端及解析結果
實際執行 工作流是否有成功或失敗的可查執行紀錄 記錄事件、分支、Runner 標籤與結果
未執行任務 是否只在特定分支、排程或手動操作時觸發 標記觸發條件及待補測項目
例外項目 是否因權限、封存或無法重現而未驗證 記錄原因、負責人及處理狀態

如果組織使用 API 匯出執行資料,可參考 GitHub 的工作流執行 REST API 文件,再將紀錄與倉庫盤點表對照。你應記下工作流名稱、事件、Runner 標籤和最近可查結果;對沒有紀錄的工作流,標示「未驗證」,不要用「最近沒有失敗」代替結論。

特別留意只在特定分支或手動觸發的發布任務:日常 PR 流程沒有出錯,並不能證明這些低頻工作流已使用替代 Runner 完成驗收。

獨立 FAQ:標籤搜尋與全組織驗收

macOS 14 Runner 退役日期與標籤

GitHub 官方公告列明 macOS 14 Runner 映像的退役日期為 2026 年 11 月 2 日,受影響標籤為 macos-14、macos-14-large 及 macos-14-xlarge。官方退役公告亦列出退役前的 brownout 計畫及替代標籤建議。請在實際變更前重新核對公告,不要自行推測替代標籤或把託管 Runner 的公告套用到自託管 Mac。

找出所有使用 macos-14 的工作流

對每個納入範圍的倉庫搜尋 runs-on 及三個受影響標籤,並追查矩陣、表達式、輸入參數與產生器。之後把靜態命中和執行紀錄交叉比對,並列出未納入、未檢查或沒有足夠執行證據的倉庫。只有當每項命中都有來源、消費位置和處理狀態,搜尋結果才適合作為可複核的工作流盤點。

排查複用工作流中的 Runner 標籤

先找到共用工作流定義,再追到所有呼叫端,檢查 Runner 標籤是固定值、呼叫輸入,還是由矩陣或運算式帶入。清單必須同時保留源頭和消費位置,並逐一記錄修改後使用該共用工作流的任務是否完成測試。只修改共用工作流或只修改呼叫端,都可能留下另一側仍傳遞舊值的情況。

確認組織內倉庫都已覆蓋

建立完整倉庫母體,為每個倉庫標示已檢查、未檢查、例外或不適用,並記錄判斷依據。接著核對分支與觸發條件,確認工作流設定和實際執行紀錄一致;沒有執行證據的任務應列為待驗證,而不是算作已完成。最終清單需能從倉庫、工作流一路追到標籤來源、遷移差異和負責人。

Mac CI 遷移驗收:按工作負載分級並建立放行門檻

不能用「替代標籤已寫入檔案」作為遷移完成條件。一般 PR 驗證、定時回歸、簽署歸檔與正式發布的失敗影響不同,應分別記錄業務影響、負責人、工具鏈固定要求及未解相容性。對發布鏈路,至少要驗證專案實際需要的建置、測試、簽署和產物流程;對其他任務,也要依其真實觸發方式安排驗證。

替代 Runner 標籤應依官方公告核對,但官方建議不等於你的專案已驗收。遷移前後要保留工作流差異、實際執行結果和未通過項目;若工具鏈固定、相依套件或簽署步驟造成阻斷,記為具體風險,不要在沒有實測時推斷新標籤的效能、排隊狀況或費用。

可勾選的組織驗收清單:

  • [ ] 建立組織內相關倉庫清單,記錄未檢查、無權限及封存狀態不明的項目。
  • [ ] 檢查預設分支及仍維護的分支,記錄工作流名稱、觸發事件與檔案位置。
  • [ ] 搜尋 macos-14、macos-14-large 和 macos-14-xlarge,並追查矩陣、表達式、複用工作流與產生設定。
  • [ ] 為每項命中記錄設定源頭、消費位置,以及負責修改的團隊或人員。
  • [ ] 對照實際執行紀錄;沒有執行證據、只接受手動觸發或只在低頻排程執行的工作,標為待驗證。
  • [ ] 依公告核對替代標籤,並在真實專案流水線驗證建置、測試及需要的發布步驟。
  • [ ] 保存變更差異、執行結果、未通過項目和已批准例外;每項未結案風險都要有負責人。
  • [ ] 只有在範圍可說明、關鍵工作負載已驗證、例外有核准依據時,才將該項標記為已放行。

放行時,將未驗證項目、相容性阻斷和責任人視為明確門檻:完成驗證後遷移;無法立即完成時,保留經批准、具處理期限的臨時例外;若特定工作負載需要受控的 Mac 環境,則另外評估由自有 Mac 承載。不要把託管 Runner 的退役公告寫成自託管 Mac 的退役狀態,也不要只因替代標籤能啟動工作,就判定發布鏈路已通過。

如果你目前依賴託管 Runner,變更標籤的工作量之外,仍需處理平台映像更新節奏與特定工作負載的驗收;自行維護 Mac 則能讓你掌握主機環境,但也要承擔硬體、維護和故障處理。若某些已驗證的 CI 工作需要獨立 Mac 環境,先閱讀 KVMFLUX 的 Mac CI 使用情境,再按團隊使用週期核對方案與計費週期。若工作負載需要實體介面或長期固定、高負載執行,自有設備可能更合適;若你要臨時承接建置或測試任務,則可把遠端 Mac 納入候選,並先用清單中的真實流水線完成驗收。

延伸閱讀

常見問題 FAQ

macOS 14 Runner 的退役日期和受影響標籤是什麼?

GitHub 官方公告指出,macOS 14 Runner 映像預定於 2026 年 11 月 2 日退役,受影響標籤包括 macos-14、macos-14-large 和 macos-14-xlarge。請以官方公告的最新內容為準,並另外確認退役前的 brownout 時段與替代標籤;不要把公告套用到自託管 Mac。

只搜尋程式碼就能找出所有使用 macos-14 的工作流嗎?

不能。文字搜尋可以定位直接寫在工作流中的標籤,但可能漏掉複用工作流、呼叫參數、矩陣或表達式產生的值,以及由產生器輸出的設定。你還要記錄未納入倉庫、未檢查分支和無法取得的執行紀錄,才能說明盤點覆蓋邊界。

共用工作流的 Runner 標籤要從哪裡查起?

先查看共用工作流定義中 jobs.<job_id>.runs-on 的來源,再沿呼叫端追查傳入的輸入值、矩陣變數及表達式。把範本或共用工作流視為設定源頭,把各個呼叫端視為實際消費位置;兩邊都要登錄,避免只改一處後仍有其他工作流傳入舊標籤。

如何證明組織內的倉庫都完成遷移驗收?

先建立倉庫母體與例外清單,為每個相關倉庫記錄檢查範圍、工作流來源和執行證據。接著逐項核對舊標籤是否仍可到達、替代 Runner 是否通過真實建置與發布步驟,以及未驗證項目是否有負責人和期限。沒有執行紀錄或明確例外,不應標記為已驗收。

為遺留 macOS 工作流準備專屬建置節點

盤點出仍依賴 macOS 的工作流後,可在 KVMFLUX 租用專屬 Mac mini M4,部署自架 runner 並逐項驗證遷移結果。 實體 Apple Silicon 硬體由你獨享,透過 SSH 管理建置任務,需要圖形介面時亦可使用 VNC。 依遷移與維護時程選擇日、週、月或季方案,無須先採購設備,也不用為閒置硬體長期投入。 可選擇新加坡、日本、韓國、香港、美國東部或美國西部節點,按團隊位置與連線需求安排建置環境。

Mac Mini M4 · 16GB / 256GB
按日$19.3 /天
按週$52.2 /週
按月$96.7 /月
按季$263 /季