2026.3.x·Node 22.12+ 고정 후 원격 Mac CI에서 openclaw config validate로 키를 막고 invalid-key 줄로 경로를 찍습니다. 핫 리로드 직후 두 번째 validate 필수. 일본어·중국어·롤백·인증·Azure 웹훅·목록. 요금·구매·고객 지원 로그인 불필요.

CI 게이트가 자주 무너지는 세 갈래

런타임 드리프트·핫 리로드 창·아티팩트 오염입니다. 러너 Node가 22.12 미만이면 먼저 빨간불, 리로드 직후엔 구워커가 옛 SecretRef를 쥐어 invalid-key가 남고, tarball에 키 실체가 들어가면 감사가 역위험이 됩니다. 같은 셸에서 doctor까지 한 파일로 묶어 단일 산출물을 남기세요.

검증 수단 짧은 판단표

관심사 config validate doctor·짧은 재시작
필수 키·스키마 비대화형 CI에 적합, 종료 코드로 게이트 경고·권한 드리프트, 수리는 별도 창에서만
invalid-key 표준 오류에 JSON 포인터·파일 경로가 자주 노출 grep 결과와 plist EnvironmentVariables를 한 줄로 맞춤
핫 리로드 직후 두 번째 validate로 설정 파일과 런타임 상태를 재동기화 여전히 섞이면 수 초 재시작으로 구워커를 끊음

사전 조건 체크리스트

  • Node 22.12+:스크립트 선두에서 소수 비교로 게이트.
  • 2026.3.x 핀:npm install -g openclaw@<태그>·openclaw --version 로그 첫 줄.
  • tarball:*.pem·*.key 제외.
  • 핫 리로드:reload 직후 config validate 두 번째 필수.
  • UID:CI 셸·plist·HOME 일치.

단계별 명령(위에서 아래로 고정)

1
런타임
node -v
node -e "const [a,b]=process.versions.node.split('.').map(Number); process.exit(a>22||a===22&&b>=12?0:1)"
2
검증점
tar -czf openclaw-checkpoint-pre.tar.gz \
  --exclude='*.pem' --exclude='*.key' \
  "${OPENCLAW_CONFIG_DIR:-$HOME/.openclaw}" 2>/dev/null || true
3
validate·doctor·grep
set -o pipefail
openclaw config validate 2>&1 | tee openclaw-ci.log
openclaw doctor 2>&1 | tee -a openclaw-ci.log
grep -Ei 'invalid[-_]?key|INVALID_KEY' openclaw-ci.log || true
4
핫 리로드 후

reload·짧은 재시작 뒤 config validate를 한 번 더 필수.

5
아티팩트

tarball·로그·마스킹된 변수명만 업로드.

흔한 오류 서명과 조사

invalid-key에 경로·포인터가 있으면 모델 키와 게이트웨이 키를 분리합니다. validate 초록·런타임만 빨강은 plist·셸 환경 불일치, 리로드 직후 간헐은 구워커—짧은 재시작 후 두 번째 로그를 첨부하세요.

CI 아티팩트 아카이브와의 연동

성공·실패 tarball 이름 규칙·보존 일수를 고정하고 로그엔 마스킹만 남깁니다. 실패 시 직전 성공 tarball과 diff로 변경 블록을 한 장 요약하세요. 업로드 단계·권한은 Argo CD 웹훅 요약 글과 같이 런북에 적습니다.

배포 전 반복 점검표

  • Node 22.12+·openclaw --version 로그 상단.
  • 핫 리로드 후 두 번째 validate 녹색.
  • 아티팩트에 키 확장자 없음.
  • 실패 시 tarball 이름·보존 기한 티켓 기록.

인용 가능한 최소 증거 세 줄

  • node -v·openclaw --version·npm 태그.
  • grep한 invalid-key 한 줄·PR 링크.
  • reload 전후 validate 로그 파일명.

현장 FAQ(짧게)

Q. validate 초록·배포 직후 invalid-key
A. plist·셸 UID 맞추고 재기동.

Q. grep에 옛 키
A. 두 번째 validate 이후 로그만.

Q. ZIP 보안 스캔 실패
A. 키 제외·env 전체 덤프 제거.

정리:검증을 심장에 두기

Node·CLI를 못 박고 config validate를 CI 심장에 두면 invalid-key는 한 줄 좌표가 됩니다. tarball·로그 아티팩트로 롤백과 감사를 같이 닫습니다.

다음 페이지는 로그인 없이 열립니다:요금·구매·고객 지원·MacPull 홈·기술 블로그.

검증 전용 원격 Mac 노드

2026.3.x 게이트웨이와 동일한 런타임에서 validate·doctor·아티팩트 루프를 고정하려면 전용 호스트를 분리하세요. 요금·구매·고객 지원은 계정 없이 열립니다.