症狀:只看月度總分鐘數,容易漏掉重跑、儲存及 Runner 類型造成的費用差異。 最快解法:先按工作流記錄執行次數與實測時間,再依目前官方計費規則核算;若工作需要持續調試或保留主機狀態,另行估算遠端 Mac,不要把兩種用法混算。

適合需要為 macOS 建置、測試或簽名任務編列 CI 預算的高校科研軟體開發者。 如果你負責課題組私有儲存庫的自動化支出,或管理實驗室的 CI 環境,本文會提供可直接套用的估算步驟。

最後更新於 2026 年 9 月 27 日;計費與 Runner 資訊核對自 GitHub Actions 計費說明、Runner 價格與計費規則及官方 Runner 文件。費率、免費額度、標籤和預覽狀態可能變動,實際核算時仍應回到官方頁面確認。

先把科研 CI 拆成工作流,再計算月用量

GitHub Actions macOS Runner 科研 CI 成本,不能只用一個「每月分鐘數」估值。至少要分辨執行量、Runner 費率與儲存用量:前者由工作流頻率及每次耗時決定,後兩者則依倉庫可見性、Runner 類型、所屬方案及當時適用的官方規則核對。

可先用這個公式整理各類工作流:

預估用量=各類工作流的觸發次數 × 每次實測時間,再加上失敗重跑與額外矩陣作業。

將預估用量套用到官方當期費率,另核對產物與快取的儲存規則。GitHub 的計費文件分開說明 Actions 使用量與儲存項目;Runner 的作業系統和規格也會影響費率,因此不要用其他作業系統的單價代替 macOS 費率。你可先看官方 Actions 用量指標,再用近期工作流紀錄核對自己的估算。

私有儲存庫尤其要先確認方案與適用額度,不能直接拿其他課題組的帳單或優惠資格推算。公開儲存庫與私有儲存庫的適用規則不同;標準託管 Runner 與 larger runner 也不是同一計費條件。開始估價前,分別檢查託管 Runner 參考資料與larger runner 使用規則。

PR 快速建置:先找出每次提交觸發的工作

PR 建置和冒煙測試通常分散在大量日常提交中,單次執行時間短,不代表整月用量一定低。你要從工作流紀錄中分開整理觸發次數、每次實際執行時間、失敗後重跑情形,以及同時觸發的作業數。

不要將等待 Runner 的排隊時間當成作業執行時間;估算時應採用工作本身的實際執行紀錄。若工作流的多個 job 會平行執行,也要按每個 job 分別計入用量,而不是只記下整條工作流從開始到結束的牆鐘時間。GitHub 的工作流並行與 concurrency 語法可協助你確認取消舊執行或限制並行時會如何影響觸發行為。

接著檢查哪些步驟真的需要 macOS。與平台無關的格式檢查、靜態分析或文件驗證,可先評估是否留在其他現有執行環境;需要 Apple 平台工具鏈的建置與測試,才保留在 macOS 作業。這不是把工作硬移出 CI,而是避免每次提交都讓不依賴 macOS 的檢查佔用 macOS 作業時間。

估算時用一段有代表性的專案紀錄,涵蓋平常提交與較忙的開發時段。只取一次成功建置的耗時,會漏掉失敗重跑和多 job 工作流帶來的額外用量。

Xcode 27 回歸:確認標籤與矩陣作業數

需要 Xcode 或 Apple 平台工具鏈的任務,先核對 Runner 標籤對應的 macOS 版本、處理器架構與可用狀態,再計算實際 job 數量。標籤名稱不是永久承諾;Runner 映像更新或預覽狀態改變,都可能影響工作流能否依原設定執行。

截至本次核對,官方資料曾列出 Xcode 27 公開預覽相關資訊;這不代表任何帳戶、標籤或時間點都必然可用。你應同時查看官方 Xcode 27 預覽公告與目前的 Runner 映像清單,並在建立預算前再確認一次。若預覽標籤不再適用,應按可用映像與工作流需求重新估算,而非把舊設定當成固定條件。

矩陣回歸要按實際組合計數:每增加一個作業系統、工具鏈版本或架構組合,都可能增加一個以上的 job。單次建置、不同 macOS 版本回歸與簽名驗證也應分開記錄;簽名驗證若依賴不同憑證、權限或人工確認,不宜將它和一般編譯時間混成同一筆平均值。

Xcode 27 測試要跑多久,才適合交給託管 Runner?

沒有一個適用所有科研專案的固定時長門檻。判斷時應將 Xcode 27 測試的實測時間、每月觸發頻率、矩陣組合及失敗重跑一起核算,再比對當期 macOS Runner 費率。若工作是觸發後完成建置、測試或簽名檢查,託管 Runner 通常較容易按作業量估算;若你需要反覆登入、保留狀態或手動驗收,就要把持續使用環境另列,不要只拿單次 CI 時長作決策。

定時分析與長作業:把排程、重試及人工介入分開

科研工作流可能按排程執行資料分析、週期性回歸或長時間建置。這類任務不能僅以「每月排程幾次」推算,還應檢查單次任務耗時、是否會因中斷而重跑,以及失敗後是否需要人員登入排錯。

對一次觸發即可完成、沒有互動需求的作業,託管 Runner 的估算方式仍是按 job 記錄執行時間與重試。若任務會在多個階段間保留狀態、需要手動操作,或研究人員會長時間反覆修改與驗證,則其成本不再等同短時 CI。這時應分開比較「每次按需執行」和「持續可存取的主機」兩種預算,不要把連續使用環境假裝成一串獨立的短作業。

失敗重跑、快取與產物:補上分鐘以外的帳目

月度預算至少要把下列項目分開記錄,因為只統計成功作業時間,會低估真實消耗:

  • 失敗重跑:記錄重試次數與每次實際耗時,並找出重跑是由測試不穩定、依賴下載失敗還是環境問題造成。
  • 快取:確認哪些依賴或建置資料使用快取、快取是否有效,以及儲存與管理規則。依官方依賴快取文件核對適用限制;不要把快取命中視為一定會縮短每次執行。
  • 日誌與建置產物:列出產物大小、保留期限及團隊目前設定,並核對組織層級的保留政策。GitHub 說明了產物與日誌保留期的設定方式;實際儲存影響要按你的方案、額度及資料保留設定確認。
  • 並行尖峰:找出 PR 集中提交或矩陣回歸同時啟動的時段。並行主要影響排程與可用性,不能因為作業同時跑就把各 job 的實際用量當成一份。

失敗重跑與構建產物會增加哪些支出?

重跑會增加實際 Runner 作業用量;日誌、快取及建置產物則需要按各自的儲存規則與保留設定檢查。它們不是同一種成本,也不能只看 Runner 分鐘數推導出總額。每次核算時,分別抄錄 Runner 使用量、儲存占用及適用費率;若官方帳單頁將額度或計費項目更新,重新代入最新規則,不要沿用前期預算。

用近期紀錄完成估算與採購判斷

按下列步驟整理一個有代表性的專案週期,不必先假定固定月頻率或每次耗時:

  1. 確認倉庫可見性及帳戶方案。記下公開或私有、目前方案和可適用的免費額度;額度以核算當日的官方帳單說明為準。
  2. 按用途分類工作流。至少分開 PR 快速建置、Xcode 回歸、簽名驗證、定時分析及人工介入任務。
  3. 從工作流紀錄抄錄實際用量。記下各類 job 的觸發次數與執行時間,並把平行 job 分別列出。
  4. 補記重跑和中斷。回看失敗紀錄,統計實際重試時間;需要人工恢復的任務另作標記。
  5. 核對 Runner 標籤與費率。確認標準 Runner 或 larger runner、macOS 版本、架構及 Xcode 狀態,依官方當期規則計算。
  6. 加入快取、產物與日誌。記錄占用和保留設定,再核對適用的儲存計費條件。
  7. 單獨標出持續操作需求。若同一工作需要長時間互動、保留狀態或反覆人工驗收,不要只把它塞進 CI 分鐘預算。
私有儲存庫的月度估算,應以你自己的帳戶方案和工作流紀錄為準;不應從公開儲存庫的處理方式推論私人專案也有相同待遇。你可以將資料整理成「倉庫可見性、Runner 類型、工作流類別、月觸發次數、實測時間、重試、儲存占用、官方費率核對日期」等欄位,再用帳單資料交叉檢查。

依工作流評分:短時作業與持續主機需求分開決定

下表以工作方式評估,不預填價格或假設專案結果。評分是供你套用紀錄的適配度標記:高表示場景通常符合該方式,有條件表示需按實測用量核算,低表示不宜單獨依賴該方式。

<
科研工作流GitHub Actions macOS Runner 適配度持續使用遠端 Mac 適配度核算重點
PR 建置、可自動完成的冒煙測試高低觸發頻率、job 實測時間、失敗重跑
Xcode 版本或系統矩陣回歸有條件有條件實際矩陣組合、Runner 標籤與費率
定時批次分析、週期回歸有條件有條件排程頻率、長作業中斷及重試
需要登入、保留狀態或手動驗收低高人工介入頻率、環境持續時間、狀態保存
如果你的紀錄顯示工作多為觸發後可自動完成的建置與測試,先用託管 Runner 的實際用量和官方費率編列預算。若頻繁調試、手動驗收或需要保留一台可持續操作的 macOS 主機,則應把這段需求獨立估價;這並不表示遠端 Mac 對所有課題組都更便宜,而是兩種工作方式不能只靠同一個 CI 分鐘數比較。

以實際紀錄決定是否增設遠端 Mac

先記錄代表性專案的建置時間、重跑、儲存及互動需求,再依官方最新計費規則核算 GitHub Actions macOS Runner 科研 CI 成本。若主要是零散、自動化的短時作業,先保留在託管 Runner;若同一團隊還需要持續調試或人工驗收,才把長期環境另列預算。

如果現有方案是讓研究人員反覆排隊等待人工協助、重複建立調試環境,或把長時間互動工作拆成大量零散 CI 作業,這些都會增加時間與管理負擔,卻不一定讓每次建置更容易重現。你可以先閱讀遠端 Mac 方案入口,確認工作流程是否需要持續存取,再核對MACGPU M4 方案資訊中的實際方案與交付內容;若只是固定、長期且無需遠端互動的自動化負載,仍應先比較現有託管 Runner 與自有設備,而不是預設租用一定划算。