把 OpenClaw 放進 CI,本質是回答三件事:誰觸發、跑在哪、如何鑑權。GitHub 託管的 macOS Runner 與 MacCloud 上的自架 Runner可以組合使用——前者適合輕量步驟,後者適合對磁碟、核心延伸模組或常駐服務更敏感的工作負載。
一、觸發策略:別在每次 push 上跑全量
長任務用 workflow_dispatch 或排程;對 PR 用路徑過濾,減少無效分鐘數。OpenClaw 相關步驟盡量獨立 Job,避免和普通 lint 混在同一矩陣裡被頻繁打斷。
二、密鑰、權杖與稽核
生產密鑰放進 GitHub Environments,配合 Required reviewers。需要存取 MacCloud API 或工單介面時,用短期權杖並定期輪替,禁止寫死在版本庫檔案中。稽核日誌裡應能還原「哪次 run 用了哪把鑰匙」。
三、自架 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 實踐,對齊磁碟、優雅結束與計費邊界。