2026 OpenClaw 프론트 실전:
원격 Mac에서 Vite·Webpack 빌드 시간을 모아 PR 성능 회귀 요약으로 돌려보내기
머지 전 프로덕션 빌드 벽시계를 같은 척도로 보려면 Vite·Webpack 로그만으로는 부족합니다. 원격 Mac에서도 재현되게 build_metrics.json·기준선 게이트·OpenClaw pr_build_perf_summary.md·Webhook 순으로 고정합니다. 심화: 캐시·시간, 번들 임계 PR, import 그래프 PR.
01 통점과 목표
① 로그 포맷이 달라 퍼센트 회귀를 말하기 어렵다. ② 긴 로그는 경로 유출 위험. ③ 고권한 토큰을 게이트웨이에 두면 감사 부담이 커진다. 목표: 얇은 JSON으로 ms를 고정하고 warn·fail 분리 후 OpenClaw는 요약만, 자격 증명은 게이트웨이와 Git으로 쪼갠다.
02 수집 방식 대조: Vite와 Webpack
ANSI 대신 기계 읽기 ms만.
| 도구 | 권장 훅 | 주의 |
|---|---|---|
| Vite | buildStart·closeBundle 누적. |
dev·build 분리, cacheDir 적중 기록. |
| Webpack | done 전후·stats 축약으로 단계 합. |
병렬 시 단계 벽시계로 통일. |
03 build_metrics.json 필드 해석
키 이름은 팀 규칙에 맞출 수 있으나 아래 권장.
| 필드 | 의미 |
|---|---|
repo sha pr toolchain |
저장소·커밋·PR·Node·PM·Runner(칩). |
totalMs |
진입~성공 종료 벽시계 ms, 업로드 제외. |
phases cacheHit |
phases: name+ms. cacheHit로 캐시 미스와 코드 회귀 분리. |
04 실행 스크립트 체인(다섯 단계 이상)
build:metrics후.openclaw/reports/${SHA}/build_metrics.json기록.- CI
jq empty검증, 실패 시 비제로 종료. - main 녹색 또는 merge-base와 비교해
build_gate.json에level·reasons. - OpenClaw가 metrics·gate로
pr_build_perf_summary.md, stdout 비밀 금지. - fail은 잡 실패, warn은 녹색+알림만.
- HMAC Webhook 또는
gh pr comment로 요약·아티팩트 링크.
인용: 경로 .openclaw/reports/<SHA>/ 고정, 단계명 영문 slug, 같은 SHA로 Apple 원격기와 Linux 한 대 교차.
05 임계값과 알림 단계
총시간·최장 단계 이중 비교. 소음 줄이려 총합은 예를 들어 +500ms 이상만 회귀. 캐시 미스는 warn, 코드 퇴보와 분리.
06 CI Webhook 연동과 멱등
페이로드는 sha·pr·gate.level·요약 앞부분만. HMAC은 상수 시간, 타임스탬프 창으로 재전송 억제. 코멘트 중복은 숨은 주석 build-metrics/<SHA> 또는 API. 재시도는 지수 백오프.
07 OpenClaw 게이트웨이 토큰과 최소 권한
게이트웨이 토큰: 허용 템플릿·모델만, 워크스페이스 바인딩·레이트·임의 fetch 금지·짧은 TTL·환경별 순환. PR 쓰기는 GITHUB_TOKEN 최소 scope 또는 단일 저장소 PAT. 관리자·workflow 쓰기는 실행층에 금지. 두 비밀은 저장소 분리·로그 마스킹.
08 정리
JSON 한 장으로 Vite·Webpack을 같은 축에 놓고 게이트 뒤 OpenClaw가 PR에 짧은 요약만 붙입니다. 로컬 SSD·코어가 부족하면 전용 원격 Mac에 동일 Runbook을 복제해 캐시 경로를 고정하세요. 머지 대기를 줄이려면 아래에서 노드를 고른 뒤 SSH로 스크립트를 그대로 옮기면 됩니다.