把 OpenClaw 放進 CI,本質是回答三件事:誰觸發、跑在哪、如何鑑權。GitHub 託管的 macOS Runner 與 MacCloud 上的自架 Runner可以組合使用——前者適合輕量步驟,後者適合對磁碟、核心延伸模組或常駐服務更敏感的工作負載。

一、觸發策略:別在每次 push 上跑全量

長任務用 workflow_dispatch 或排程;對 PR 用路徑過濾,減少無效分鐘數。OpenClaw 相關步驟盡量獨立 Job,避免和普通 lint 混在同一矩陣裡被頻繁打斷。

二、密鑰、權杖與稽核

生產密鑰放進 GitHub Environments,配合 Required reviewers。需要存取 MacCloud API 或工單介面時,用短期權杖並定期輪替,禁止寫死在版本庫檔案中。稽核日誌裡應能還原「哪次 run 用了哪把鑰匙」。

底線:任何能操作生產 Mac 或費用的憑證,都要可撤銷、可追蹤。

三、自架 Runner 落在 MacCloud

在獨享 Mac 上註冊 Runner 後,為 OpenClaw Job 打專用標籤(例如 runs-on: [self-hosted, macOS, openclaw]),與通用 iOS 建置佇列隔離。機器維護、系統升級前,記得在 GitHub 側停用 Runner,避免半升級狀態搶任務。

四、快取、製品與日誌

大相依用 Actions Cache 或內部製品庫;日誌與報告用 artifact 上傳,便於和 OpenClaw 側事件對照。快取鍵要包含鎖檔雜湊,避免「命中了舊相依卻以為是最新」的隱性失敗。

五、失敗時怎麼縮小爆炸半徑

為 OpenClaw 相關步驟設定逾時與重試上限;不可恢復錯誤(鑑權失敗、配額耗盡)應立即失敗並打標籤,而不是無限重試占滿佇列。與編排場景裡的退避策略保持一致。

六、自檢清單

  • 觸發條件是否涵蓋預設分支、PR、手動三類情境?
  • Environment 保護規則是否擋住未審核的 fork PR
  • Runner 標籤是否與 Job 矩陣一一對應、沒有漏跑或誤跑?
  • artifact 裡是否包含足夠排錯的日誌層級?

雲上常駐行程與 Runner 混用時,務必再讀MacCloud 實踐,對齊磁碟、優雅結束與計費邊界。