Full Release Validation은 릴리스 검증을 총괄하는 단일 수동 진입점으로, 릴리스 전 증명을 수행합니다. 대부분의 작업은 하위 워크플로에서 진행되므로 한 환경에서 실패하더라도 전체 릴리스를 처음부터 다시 시작하지 않고 재실행할 수 있습니다.
신뢰할 수 있는 워크플로 ref(일반적으로 main)에서 실행하고 릴리스 브랜치, 태그 또는 전체 커밋 SHA를 ref로 전달합니다.
provider에는 교차 OS 온보딩 및 엔드투엔드 에이전트 턴을 위해 anthropic 또는 minimax도 사용할 수 있습니다. 재사용 가능한 하위 작업은 job.workflow_repository와 job.workflow_sha에서 호출된 워크플로 하네스를 확인하며, 입력 ref는 테스트할 후보를 선택합니다. 따라서 이전 릴리스 브랜치나 태그를 검증할 때도 현재의 신뢰할 수 있는 검증 로직을 사용할 수 있습니다.
디스패치된 모든 하위 워크플로는 상위 Full Release Validation 실행과 동일한 워크플로 SHA를 보고해야 합니다. 상위 워크플로와 하위 워크플로의 디스패치 사이에 main이 이동하면 하위 워크플로 자체가 성공하더라도 총괄 워크플로는 안전하게 실패합니다. 변경 불가능한 정확한 커밋을 증명하려면 pnpm ci:full-release --sha <target-sha>를 사용합니다. 이 도우미는 현재 신뢰할 수 있는 origin/main에 고정된 임시 release-ci/* ref를 만들고, 대상 SHA를 후보 ref로만 전달하며, 사용 가능한 경우 엄격한 정확한 대상 증거를 재사용하고 검증 후 ref를 삭제합니다. 새 실행을 강제하려면 -f reuse_evidence=false를 전달하고, 현재 origin/main에서 여전히 도달할 수 있는 이전 워크플로 커밋을 선택하려면 --workflow-sha <trusted-main-sha>를 전달합니다. 워크플로 자체는 저장소 ref를 생성하거나 업데이트하지 않습니다.
release_profile=stable과 release_profile=full은 항상 전체 라이브/Docker 장시간 검증을 실행합니다. beta 프로필에서 동일한 장시간 검증 레인을 포함하려면 run_release_soak=true를 전달합니다. 안정 버전 게시는 이 장시간 검증과 차단형 제품 성능 증거가 없는 검증 매니페스트를 거부합니다.
Package Acceptance는 일반적으로 확인된 ref에서 후보 tarball을 빌드하며, 여기에는 pnpm ci:full-release로 디스패치된 전체 SHA 실행도 포함됩니다. 베타 게시 후에는 릴리스 검사, Package Acceptance, 교차 OS, 릴리스 경로 Docker 및 패키지 Telegram에서 게시된 npm 패키지를 재사용하도록 release_package_spec=openclaw@YYYY.M.PATCH-beta.N을 전달합니다. Package Acceptance가 의도적으로 다른 패키지를 증명해야 할 때만 package_acceptance_package_spec을 사용합니다. Codex Plugin 라이브 패키지 레인도 동일한 상태를 따릅니다. 게시된 release_package_spec 값은 codex_plugin_spec=npm:@openclaw/codex@<version>을 파생하고, SHA/아티팩트 실행은 선택한 ref에서 extensions/codex를 패키징하며, 운영자는 npm:, npm-pack: 또는 git: Plugin 소스에 대해 codex_plugin_spec을 직접 설정할 수 있습니다. 이 레인은 해당 Plugin에 필요한 명시적 Codex CLI 설치 승인을 부여한 다음 Codex CLI 사전 점검과 동일 세션의 OpenAI 에이전트 턴을 실행합니다.
최상위 단계
rerun_group=all의 경우 Check for reusable validation evidence 작업이 먼저 실행됩니다. 이 작업은 정확히 동일한 대상 SHA, 릴리스 프로필, 유효한 장시간 검증 설정 및 검증 입력에 대해 가장 최근에 성공한 이전 전체 검증을 찾습니다. 그러한 증거가 있으면 모든 레인을 건너뛰고 총괄 검증기가 변경 불가능한 상위 아티팩트, 하위 실행 및 디스패치 로그를 다시 확인합니다. 이는 동일한 후보의 재실행 복구만을 위한 것이며 SHA 간 재사용을 허용하지 않습니다. 후보가 변경되었다면 해당 변경의 영향을 받는 모든 패키지, 아티팩트, 설치, Docker 또는 공급자 게이트를 재실행합니다. 새로운 전체 실행을 강제하려면 reuse_evidence=false를 전달합니다. 증거 재사용은 main 또는 워크플로 커밋이 신뢰할 수 있는 main 계보에 남아 있는 정식 SHA 고정 release-ci/* ref에서만 실행됩니다. 다른 워크플로 ref에서는 선택한 레인을 새로 실행합니다.
또한 rerun_group=all의 경우 Verify Docker runtime image assets 작업은 OPENCLAW_EXTENSIONS=diagnostics-otel,codex를 사용하여 runtime-assets Docker 대상을 빌드합니다. 이 작업은 다른 단계와 병렬로 실행되며 총괄 검증기가 강제합니다. 이제 레인은 디스패치 전에 이 작업을 기다리지 않습니다. 더 좁은 rerun_group은 이 사전 점검을 건너뜁니다.
총괄 워크플로는 항상 아티팩트 전용 모드로 제품 성능 작업을 디스패치합니다.
OpenClaw Performance는 예약 실행 또는 publish_reports=true를 명시적으로 설정한 수동 디스패치에서만 보고서 게시를 허용합니다. 아티팩트 전용 가드는 성공적으로 완료되어 게시자 작업이 건너뛰어진 상태였음을 증명해야 합니다. 새 증거와 재사용된 증거는 모두 controls.performanceReportPublication=artifact-only를 기록합니다. 검증기와 재사용 선택기는 이에 일치하는 정규화된 성능 하위 워크플로 증명이 없는 증거를 거부합니다.
검증기는 정식 매니페스트를 full-release-validation-<run-id>-<run-attempt>로 업로드합니다. 증거 도구는 정확한 아티팩트 ID를 다운로드하기 전에 해당 ID, 다이제스트, 생성자 실행 및 시도를 검증합니다. 다운로드되는 ZIP의 크기를 제한하고, REST sha256: 다이제스트와 바이트를 대조해 검증하며, 아카이브를 추출하지 않고 허용된 유일한 크기 제한 매니페스트 항목을 스트리밍합니다. 이전 게시 소비자를 위해 안정적인 이름의 별칭이 임시로 유지됩니다. 검증기는 항상 시도 번호가 포함된 아티팩트를 우선합니다. 전환 과정에서는 시도 1의 매니페스트 v2 생성자에 대해서만 안정적인 이름을 허용합니다. 이후 시도 및 매니페스트 v3에서는 해당 레거시 이름을 거부합니다.
ref=main과 rerun_group=all의 조합, release/* ref 및 Tideclaw 알파 ref에서는 동일한 ref와 재실행 그룹을 사용하는 최신 총괄 실행이 이전 실행을 대체합니다. 상위 실행이 취소되면 해당 모니터가 이미 디스패치한 모든 하위 워크플로를 취소합니다. 태그 및 고정 SHA 검증 실행은 서로를 취소하지 않습니다.
릴리스 검사 단계
OpenClaw Release Checks는 가장 큰 하위 워크플로입니다. 대상을 한 번 확인하고 패키지 또는 Docker 관련 단계에 필요할 경우 공유 release-package-under-test 아티팩트를 준비합니다.
Docker 릴리스 경로 청크
Docker 릴리스 경로 단계는live_suite_filter가 비어 있을 때 다음 청크를
실행합니다.
Docker 레인 하나만 실패한 경우 재사용 가능한 라이브/E2E 워크플로에서
대상 지정
docker_lanes=<lane[,lane]>을 사용합니다. 릴리스 아티팩트에는 가능한 경우
패키지 아티팩트 및 이미지 재사용 입력을 포함한 레인별 재실행 명령이 포함됩니다.
릴리스 프로필
release_profile은 주로 릴리스 검사 내의 라이브/프로바이더 범위를 제어합니다.
일반 전체 CI, Plugin 시험판, 설치 스모크, 패키지
승인 또는 QA Lab을 제거하지는 않습니다. stable 및 full 프로필은 항상 저장소/라이브
E2E와 Docker 릴리스 경로 장시간 실행 검증을 빠짐없이 수행합니다. beta 프로필은
run_release_soak=true로 이를 활성화할 수 있습니다. 패키지 승인은 모든 전체 후보에 대해 표준 패키지
Telegram E2E를 제공하므로, 상위 워크플로는 해당
라이브 폴러를 중복 실행하지 않습니다.
full 전용 추가 항목
다음 스위트는stable에서는 건너뛰고 full에만 포함됩니다.
stable에는 native-live-src-gateway-profiles-anthropic-smoke와
native-live-src-gateway-profiles-opencode-go-smoke가 포함되며, full에서는 대신 더 광범위한
Anthropic 및 OpenCode Go 모델 샤드를 사용합니다. 집중 재실행에는 여전히 집계
native-live-src-gateway-profiles-anthropic 또는
native-live-src-gateway-profiles-opencode-go 핸들을 사용할 수 있습니다.
집중 재실행
관련 없는 릴리스 실행 환경의 반복 실행을 피하려면rerun_group을 사용합니다.
라이브 스위트 하나가 실패한 경우
rerun_group=live-e2e와 함께 live_suite_filter를 사용합니다.
유효한 필터 ID는 재사용 가능한 라이브/E2E 워크플로에 정의되어 있으며, 다음을 포함합니다.
docker-live-models, live-gateway-docker,
live-gateway-anthropic-docker, live-gateway-google-docker,
live-gateway-minimax-docker, live-gateway-advisory-docker,
live-cli-backend-docker, live-acp-bind-docker 및
live-codex-harness-docker.
live-gateway-advisory-docker 핸들은 세 프로바이더 샤드를 위한 집계 재실행 핸들이므로,
여전히 모든 참고용 Docker Gateway 작업으로 분산 실행됩니다.
운영체제 간 실행 경로 하나가 실패한 경우 rerun_group=cross-os와 함께 cross_os_suite_filter를
사용합니다. 필터는 운영체제 ID, 스위트 ID 또는 운영체제/스위트 쌍을 허용합니다. 예:
windows/packaged-upgrade, windows 또는 packaged-fresh. 운영체제 간
요약에는 패키지 업그레이드 실행 경로의 단계별 시간이 포함되며, 장시간 실행되는
명령은 Heartbeat 줄을 출력하므로 작업
시간 초과 전에 멈춘 업데이트를 확인할 수 있습니다.
QA 릴리스 검사 실패는 일반 릴리스 검증을 차단합니다. QA 런타임 도구
범위 검사(표준 티어의 openclaw과 codex 간 동적 도구 불일치)도
기반 QA 런타임 동등성 실행 경로가 참고용이더라도 릴리스 검사 검증기를
차단합니다. Tideclaw 알파 실행에서는 패키지 안전성과 관련 없는 릴리스 검사 실행 경로를 여전히
참고용으로 처리할 수 있습니다.
release_profile=beta에서는 Run repo/live E2E validation 라이브 프로바이더 스위트가
참고용입니다. 서드 파티 모델 배포는 릴리스 도중에도 변경될 수 있으므로,
beta에서는 실패를 경고로 표시하고 stable 및 full 프로필에서는 계속
차단 상태로 유지합니다.
live_suite_filter가 Discord, WhatsApp 또는 Slack 같은 게이트 적용 QA 라이브 실행 경로를 명시적으로 요청하는 경우,
일치하는 OPENCLAW_RELEASE_QA_*_LIVE_CI_ENABLED 저장소
변수를 활성화해야 합니다. 그렇지 않으면 해당 실행 경로를 조용히 건너뛰는 대신 입력 캡처가 실패합니다.
새로운 QA 증거가 필요하면 rerun_group=qa, qa-parity 또는 qa-live를
재실행합니다.
보관할 증거
릴리스 수준 인덱스로Full Release Validation 요약을 보관합니다. 여기에는
하위 실행 ID 링크와 가장 느린 작업 표가 포함됩니다. 실패 시에는 먼저 하위
워크플로를 살펴본 후 위에서 일치하는 가장 작은 핸들을 재실행합니다.
유용한 아티팩트:
OpenClaw Release Checks의release-package-under-test.artifacts/docker-tests/아래의 Docker 릴리스 경로 아티팩트- 패키지 승인의
package-under-test및 Docker 승인 아티팩트 - 각 운영체제 및 스위트의 운영체제 간 릴리스 검사 아티팩트
- QA 동등성, 런타임 동등성, Matrix 및 Telegram 아티팩트
워크플로 파일
.github/workflows/full-release-validation.yml.github/workflows/openclaw-release-checks.yml.github/workflows/openclaw-live-and-e2e-checks-reusable.yml.github/workflows/plugin-prerelease.yml.github/workflows/install-smoke.yml.github/workflows/install-smoke-reusable.yml.github/workflows/openclaw-cross-os-release-checks-reusable.yml.github/workflows/package-acceptance.yml.github/workflows/openclaw-performance.yml.github/workflows/npm-telegram-beta-e2e.yml