OpenClaw · 建置度量 · CI · 遠端 Mac · 2026

2026 OpenClaw 前端實戰:
遠端 Mac 聚合 Vite/Webpack 建置耗時並生成 PR 效能回歸摘要

2026.04.11 MacWww 技術團隊 約 8 分鐘閱讀

合併前要看清production 建置 wall time是否回歸,但 Vite 與 Webpack 日誌難用同一口徑橫向對比。本文給出遠端 Mac Runner可複現串聯:落盤 build_metrics.json,對比基線分級閘道,OpenClaw 生成 pr_build_perf_summary.md,由 CI Webhook 或 PR 留言冪等回傳。延伸閱讀 Bundle 體積閾值 PR 摘要import 圖譜 PR 摘要esbuild/SWC Monorepo 矩陣

Meta + 可選 HowTo(JSON-LD)+ 目錄 + 對照表 + FAQ

01 痛點與目標

痛點一:兩套工具終端輸出格式不同,難用「慢百分之幾」一句話對齊。痛點二:整段日誌貼進 PR 易洩露絕對路徑與內網主機名。痛點三:把高權限 Git 權杖交給單一代理,稽核面過大。目標是以薄 schema聚合階段耗時與快取狀態,閾值分級後由 OpenClaw 只輸出短摘要;憑證拆成網關與 Git 兩類最小權限,寫入與推論分離。落地時可先從「只記總時長與三個最慢階段」做起,再逐步加上細粒度 phases,避免第一版就被維護成本拖垮。

02 採集方式對照:Vite 與 Webpack

只採集可機讀毫秒與階段名 slug,避免依賴 ANSI 色彩與外掛雜訊。遠端 Mac 上請鎖定 Node 小版本與 lockfile,並在 manifest 附 runner 標籤(含 Apple Silicon 機型),便於事後對照冷/暖快取。若 Monorepo 內同時存在 Vite 與 Webpack 應用,建議在 JSON 頂層加 appIdpackage,避免不同子專案報告互相覆寫;夜間全量與主線抽樣可分目錄存放,降低單次 artifact 體積。

工具 建議鉤子 注意
Vite 外掛 buildStartcloseBundle 打點或累計階段。 區分 dev 與 build;記錄 cacheDir 是否命中。
Webpack doneprocessAssets 間分段;必要時再裁剪 stats。 平行子工作多時以階段牆鐘為準,避免把 CPU 加總誤當單線程。

03 build_metrics.json 欄位解析

鍵名可依團隊微調,建議保留下列欄位以利 jq 與 OpenClaw 模板對齊。

欄位 含義
repo sha pr toolchain 座標、提交、可選 PR 號;工具鏈與 Node 小版本、Runner 標籤含機型。
totalMs 從入口指令到成功退出的牆鐘毫秒,不含上傳 artifact 的網路時間。
phases cacheHit phasesnamems 陣列;cacheHit 解釋是否因快取未命中而變慢。
schemaVersion ciRunUrl 契約版本號便於向後相容;可選 CI 執行頁連結(不含 Token),方便從 PR 跳回完整日誌。
可引用資訊(≥3)

① 階段名用英文 slug,避免本地化字串。② PR 內嵌摘要宜控制在數百 KB 內,其餘連結工件。③ 對基線須同一壓縮與 sourcemap 策略,否則耗時差異會混入 I/O。④ 同一 PR 多次 push 時以最新 SHA 覆寫摘要,舊版保留於工件供比對與稽核。

04 可執行腳本串聯(≥5 步)

  1. build:metrics:production 建置後由 Node 寫入 .openclaw/reports/${SHA}/build_metrics.json(建置腳本結束碼為零才寫入,失敗則另存 build_failed.txt 僅含錯誤類型與行數,避免把堆疊全文進 PR)。
  2. CI:jq empty 驗證 JSON,失敗則非零退出。
  3. 拉取 main 綠建置基線,輸出 build_gate.jsonlevelreasons)。
  4. OpenClaw 讀取 metrics 與 gate,落地 pr_build_perf_summary.md;stdout 不列印任何金鑰。
  5. fail 則 job 標紅;warn 則綠但觸發通知頻道。
  6. 通知:HMAC Webhook 或 gh pr comment,正文附 artifact 連結。

目錄約定可與既有 Bundle 圖譜或體積閘道管線共用 .openclaw/reports/<sha>/ 前綴,便於同一 PR 多份機讀報告並行稽核;各檔案以檔名區分語意,避免互相覆蓋。

落地檢查清單
  • 同一 SHA 觸發建置與摘要,避免合併後指標錯綁。
  • 長構建可改夜間批次,主線只跑抽樣或閾值 warn。
  • Mac 與 Linux 各跑一次,對照 Apple 堆疊與檔案系統差異。

05 閾值與告警分級

總時長最長階段雙軌對比基線:低於 warn 記 INFO;介於 warn 與 fail 標黃並輸出摘要;超過 fail 則紅。建議設最小絕對增量(例如總時長慢滿五百毫秒才算回歸),避免 CI 抖動誤傷。快取未命中應單獨標 warn 並附原因,勿與程式碼效能回歸混談。體積與耗時常同時劣化,可在摘要中並列「最慢階段」與「gzip 體積差」,必要時分開 gate,避免單一指標誤判。

06 CI Webhook 聯動與冪等

Webhook 負載建議含 shaprgate.level 與摘要前兩百字,必要時附 artifact 下載路徑而非內嵌大段 JSON。服務端以常數時間校驗 HMAC,防重放可用短時間戳視窗;內網接收端應限制來源 IP 或 mTLS,避免誤把摘要 POST 到公網。PR 留言去重可用隱藏 HTML 註解鍵 <!-- openclaw-build-metrics:$SHA --> 或先查 API 是否已有同前綴留言。失敗重試採指數退避並設上限,避免合併潮打滿內部網關;若與 Slack/企業微信並行,請統一由一個 fan-out 服務轉發,避免重複告警。

07 OpenClaw 網關 Token 與最小權限

網關 Token僅用於呼叫受控模板與模型路由:綁定工作區、限速、停用任意網路抓取;生命週期短並支援按環境輪換。寫入 Git仍優先 GITHUB_TOKEN 並於 workflow 宣告 permissions: pull-requests: write,或使用細粒度 PAT 限定單一儲存庫且只開 PR 留言與 Contents 讀。勿把組織管理員或 workflow 寫權限交給 OpenClaw 執行層;網關與 Git 憑證分庫儲存,流水線日誌對兩類 Token 一律脫敏。fork PR 與不可信貢獻者情境下,寧可只上傳 artifact、由維護者手動觸發回傳,也不要在惡意 workflow 中暴露寫入權杖。Monorepo 併發相關的堆與 worker 上限,請另參考首段內鏈之 esbuild/SWC 對照表調參。

08 FAQ

為何不用終端全文做 diff?日誌含外掛雜訊與路徑抖動,版本升級後格式亦可能變動;薄 JSON 契約便於 jq 與代理按欄位裁剪,並利於長期儲存與稽核。

閾值怎樣少誤報?總時長與最長階段雙軌;相對基線設 warn/fail 兩檔,並設最小絕對增量毫秒。樣本單次偏離可先標記為「待觀察」,連續兩次再升級為 fail。

網關與 GitHub Token 分工?網關只負責模板與配額;寫 PR 仍用最小 scope 的 Git 權杖,分金鑰輪換。Rotate 時先換網關、驗證摘要無誤,再換 Git PAT,降低雙重故障窗口。


重點整理

鎖檔 manifest → build_metrics.jsonbuild_gate.json → OpenClaw Markdown → 冪等 PR/Webhook;網關與 Git 最小權限與逾時。遠端 Apple Silicon 節點見 購買公開頁免登入。

需要幫助、定價與相關技術見解

在遠端 Mac 上跑建置度量與 OpenClaw PR 摘要管線

開啟 幫助中心 了解 SSH 與任務保活;查看 定價 與套餐;透過 購買公開頁免登入租用節點。更多 OpenClaw 與前端驗收博文見 技術見解列表官網首頁。將長建置與摘要從本機搬到雲端,可縮短合併排隊並留下可稽核軌跡。

建置耗時 閾值告警 OpenClaw
免登入購買公開頁租用 Mac