面向真實工程流程

將獨享雲端 Mac 接入建置、測試與遠端生產環境

HexVM 為每筆訂單配置獨立的 Mac mini 實體節點,而非虛擬機。團隊可保留現有程式碼儲存庫、指令碼與發布規則,只將需要 macOS 與 Apple Silicon 的執行階段遷移至雲端。

pipeline / macos-arm64 執行中
01

程式碼儲存庫

提交觸發
02

獨享節點

環境驗證
03

Xcode

建置與測試
04

產出物

封存與上傳
執行結果 環境可重現,任務可追蹤
依工作負載篩選

先確認哪些任務需要放到雲端 Mac

不是所有步驟都必須遷移。選擇場景後查看建議流程、需要準備的輸入與上線前驗收項目,再決定節點數量與執行方式。

適合持續整合

將 macOS Runner 打造成可控的固定執行環境

程式碼提交後,由儲存庫平台調度 self-hosted runner,在獨享節點執行依賴還原、測試、封存與產出物上傳。團隊可自行定義觸發規則、並行策略與金鑰權限。

查看 iOS CI/CD 流程
輸入儲存庫、建置指令碼、憑證材料
執行xcodebuild 測試與封存
驗收日誌、測試結果、可安裝產出物
iOS CI/CD

從程式碼提交到產出物上傳的五段流程

獨享實體機適合需要固定 Xcode 版本、穩定快取目錄與明確權限邊界的流水線。節點不與其他訂單共用運算資源,但儲存庫權限、簽署材料與任務清理仍由團隊負責。

  1. 01

    程式碼提交

    透過分支、標籤或合併請求觸發任務。先在儲存庫端限制可觸發發布流程的成員,避免一般測試任務取得簽署權限。

    驗收:觸發規則可重現
  2. 02

    Runner 調度

    為 self-hosted runner 設定明確標籤,例如晶片架構、Xcode 主版本與用途。單節點並行數應依任務記憶體峰值與磁碟寫入量評估。

    驗收:任務只進入目標節點
  3. 03

    建置與測試

    鎖定依賴版本,執行單元測試、介面測試或靜態檢查。失敗時保留結束碼、測試報告與關鍵日誌,而不是只保存最後一幕輸出。

    驗收:可定位失敗原因
  4. 04

    簽署封存

    發布任務期間暫時解鎖所需鑰匙圈,完成後立即關閉存取權限。憑證與描述檔應依專案及環境分開,不應長期以明文存放於一般建置目錄。

    驗收:權限範圍最小化
  5. 05

    產出物上傳

    上傳封存檔、測試報告與符號檔,並記錄提交雜湊、建置編號與工具鏈版本。成功後清理衍生資料中的專案敏感內容。

    驗收:產出物可追溯
建議將測試與發布拆分為不同權限等級。

測試 Runner 無需接觸發布憑證;只有受保護分支的封存任務才載入簽署材料。如此即使一般任務指令碼發生錯誤,也不會擴大憑證暴露範圍。

macOS 應用程式建置

讓多分支建置共用規則,而不是共用髒環境

持續運作的節點可以保留經驗證的工具鏈與下載快取,但每個任務仍應使用獨立工作目錄。快取用於加速,不應成為建置成功的前置條件。

分支隔離

依任務編號建立工作目錄,建置結束後回收暫存檔案。不要讓兩個並行分支改寫同一個依賴目錄或輸出路徑。

  • 固定預設分支的發布權限
  • 為暫存分支設定清理期限
  • 記錄提交雜湊與建置參數

依賴快取

快取鍵至少應包含依賴鎖定檔摘要、工具鏈主版本與架構。命中異常時,應能一鍵繞過快取完成乾淨建置。

  • 區分下載快取與建置產物
  • 設定容量閾值與回收順序
  • 定期執行無快取基線任務

發布產出物

分別保存測試結果、公證準備材料、安裝套件與符號檔。產出物名稱應包含版本、建置編號與提交識別碼。

  • 建置後執行完整性驗證
  • 限制發布目錄的寫入成員
  • 保留產生工具鏈的版本記錄
build-check.sh
xcodebuild -version
xcode-select -p
swift --version
git rev-parse --short HEAD
xcodebuild test -scheme "Project" -destination "platform=macOS"

將版本確認放在每次建置日誌的開頭。出現環境漂移時,先比較工具鏈路徑、專案提交與依賴鎖定檔,再判斷是否需要清理快取。

AI 模型實驗

驗證 Apple Silicon 上的推論相容性與持續任務

雲端 Mac 適合重現實驗環境、檢查工具鏈相容性及執行可恢復的批次處理任務。硬體能力以兩種在售配置為界,不將實驗結果外推至未列出的規格。

固定輸入基線

保存模型版本、樣本摘要、隨機種子與執行參數。比較輸出時使用同一組輸入,不以單次執行取代完整驗證。

記錄環境版本

鎖定執行環境、依賴套件與模型轉換工具版本。升級前先複製環境並執行回歸樣本,確認輸出與資源使用量的變化。

設計恢復點

持續任務按批次寫入進度與結果,程序結束後從已確認批次繼續。不要將尚未持久化的記憶體狀態視為唯一進度來源。

觀測資源邊界

記錄記憶體峰值、磁碟增長、任務耗時與失敗樣本。達到機型資源邊界時,優先調整批次大小或佇列方式。

從本機環境平順遷移

三階段遷移路徑:資料、工具鏈、CI 接入

先複製,再驗證,最後切換。保留本機回退路徑,直到雲端節點連續通過建置、權限與產出物驗收。

01

第一階段

遷移必要資料

優先透過程式碼儲存庫、產出物儲存與加密傳輸複製專案資料。排除快取、暫存建置目錄、歷史日誌與不再使用的憑證。

驗證清單

  • 儲存庫分支與子模組完整
  • 大型檔案摘要與本機一致
  • 敏感設定未寫入儲存庫
  • 舊節點資料仍可回退
02

第二階段

複製工具鏈

記錄本機 Xcode 版本、命令列工具路徑、套件管理器鎖定檔、環境變數來源與建置指令碼入口,再逐項於雲端複製。

驗證清單

  • 工具版本與路徑已記錄
  • 乾淨環境可還原依賴
  • 測試集結果符合基線
  • 刪除快取後仍可建置
03

第三階段

接入 CI 調度

先接入非發布分支,確認調度標籤、逾時、日誌與清理規則,再開放受保護分支與簽署封存任務。

驗證清單

  • Runner 標籤沒有歧義
  • 失敗任務能夠自動回收
  • 發布權限僅限授權流程
  • 產出物與日誌可以追溯
切換門檻

至少完成一次乾淨建置、一次失敗恢復、一次權限驗證與一次產出物回溯,再將雲端節點設為主要執行環境。

憑證與上架流程

將敏感權限限定在需要它的步驟

HexVM 提供獨享實體節點與遠端存取能力。憑證申請、描述檔管理、鑰匙圈權限、發布授權與最終提交均由客戶團隊管理。

流程階段 團隊負責 節點執行 驗收記錄
憑證準備

確定憑證用途、保管匯出密碼並限制可存取成員。

在受控工作階段中匯入所需材料,不長期開放鑰匙圈。

憑證名稱、有效狀態、授權成員。

描述檔

依 App 識別碼與發布環境管理檔案,移除失效版本。

在建置前驗證匹配關係,失敗時停止封存。

App 識別碼、團隊資訊、檔案版本。

簽署封存

核准受保護分支與發布任務,控制建置參數。

執行封存、匯出與完整性檢查,輸出明確結束碼。

提交雜湊、建置編號、封存摘要。

提交上架

複核版本資訊、隱私材料、螢幕截圖與發布範圍。

準備經驗證的產出物與上傳工具環境。

提交者、產出物版本、提交結果。

鑰匙圈權限

僅在簽署階段解鎖,任務結束後立即關閉。不同專案或環境使用獨立存取策略,避免測試任務繼承發布權限。

封存驗證

檢查 App 識別碼、簽署身分、版本號、建置編號與匯出結果。任何欄位不符合預期時停止上傳,不要人工忽略錯誤繼續執行。

釋放節點前

撤銷 Runner 註冊,移除憑證與描述檔,清理儲存庫憑證、建置目錄與日誌中的敏感欄位,並確認必要產出物已完成轉存。

上線前檢查

團隊落地清單

以下六項都應有明確負責人與驗收記錄。任何一項仍依賴口頭約定,都可能在建置失敗、成員變更或節點釋放時形成風險。

01

區域選擇

根據開發者位置、儲存庫資料路徑與產出物上傳方向選擇區域。目前在售區域為新加坡、日本(東京)、韓國(首爾)、香港、美國東部、美國西部,共 6 個區域。

  • 測試團隊到節點的連線品質
  • 記錄主要資料傳輸方向
  • 確認區域符合團隊內部要求
02

機型選擇

先用實際專案執行完整建置,再依記憶體峰值、磁碟增長與並行方式選擇 HexVM M4 或 HexVM M4 Pro。

  • 記錄乾淨建置耗時
  • 檢查依賴與產出物佔用空間
  • 避免用單次增量建置判斷容量
03

帳戶權限

區分節點管理、日常開發、CI 執行與發布權限。成員離開團隊或職責變更時,應立即收回金鑰與儲存庫授權。

  • 建立授權成員清單
  • 分離測試與發布權限
  • 制定憑證輪換流程
04

儲存庫接入

使用範圍受限的部署憑證或 Runner 授權,只開放任務所需儲存庫。指令碼不得將權杖、私密金鑰或完整憑證寫入日誌。

  • 限制儲存庫與分支範圍
  • 對敏感輸出執行脫敏
  • 驗證撤銷憑證後的行為
05

監控與恢復

記錄任務佇列、成功率、失敗原因、磁碟使用量與執行時間。持續任務要保存恢復點,建置失敗後能夠安全重試。

  • 定義失敗警報接收人
  • 設定磁碟容量閾值
  • 定期驗證恢復步驟
06

成本檢討

按節點統計有效建置時間、排隊等待時間、閒置時段與快取效益。短期任務可按日或週安排,持續流水線則可比較月度與季度週期。

  • 區分執行時間與等待時間
  • 檢討失敗重試造成的耗用
  • 按專案分配節點使用記錄
先執行基線任務,再決定長期配置。

使用真實儲存庫完成乾淨建置、增量建置、測試、封存與產出物上傳。若需要支援人員協助定位問題,請準備節點 ID、區域、發生時間、重現步驟與已脫敏日誌。

開始部署

選擇適合現有流水線的獨享 Mac

比較兩種在售機型與租期,完成區域及附加項目設定後即可下單。所有費用均以美元(USD)結算,實際可用性以控制台即時回傳為準。