Full Release Validation to nadrzędny proces wydania: pojedynczy ręczny punkt wejścia
do weryfikacji przed wydaniem. Większość zadań jest wykonywana w podrzędnych przepływach pracy, dzięki czemu
zadanie zakończone niepowodzeniem można uruchomić ponownie bez ponownego rozpoczynania całego wydania.
Uruchom go z zaufanego odwołania przepływu pracy, zwykle main, i przekaż gałąź wydania,
tag lub pełny SHA commita jako ref:
provider akceptuje również anthropic lub minimax na potrzeby wdrażania w różnych systemach operacyjnych oraz
pełnego przebiegu agenta. Zadania podrzędne wielokrotnego użytku ustalają środowisko wywoływanego przepływu pracy
na podstawie job.workflow_repository i job.workflow_sha, natomiast parametr wejściowy ref
wybiera testowanego kandydata. Dzięki temu bieżąca zaufana logika walidacji
pozostaje dostępna podczas walidowania starszej gałęzi lub starszego tagu wydania.
Każdy uruchomiony proces podrzędny musi zgłosić ten sam SHA przepływu pracy co nadrzędne
uruchomienie Full Release Validation. Jeśli main zmieni się między uruchomieniem procesu nadrzędnego
a procesów podrzędnych, proces nadrzędny zakończy się bezpiecznym niepowodzeniem, nawet jeśli sam proces podrzędny się powiedzie. Aby
uzyskać niezmienny dowód dla dokładnego commita, użyj
pnpm ci:full-release --sha <target-sha>. Narzędzie pomocnicze tworzy tymczasowe
odwołanie release-ci/* przypięte do bieżącego zaufanego origin/main, przekazuje docelowy
SHA wyłącznie jako ref kandydata, ponownie wykorzystuje ścisłe dowody dla dokładnego celu, gdy
są dostępne, i usuwa odwołanie po walidacji. Przekaż
-f reuse_evidence=false, aby wymusić nowe uruchomienie, lub
--workflow-sha <trusted-main-sha>, aby wybrać starszy commit przepływu pracy, który nadal
jest osiągalny z bieżącego origin/main. Sam przepływ pracy nigdy nie tworzy ani nie aktualizuje
odwołań repozytorium.
release_profile=stable i release_profile=full zawsze uruchamiają wyczerpujący
długotrwały test środowiska rzeczywistego/Dockera. Przekaż run_release_soak=true, aby uwzględnić te same ścieżki długotrwałych testów
w profilu beta. Publikacja stabilna odrzuca manifest walidacji
bez tego długotrwałego testu oraz blokujących dowodów wydajności produktu.
Package Acceptance zwykle buduje archiwum tar kandydata z rozpoznanego
ref, w tym dla uruchomień z pełnym SHA wywołanych za pomocą pnpm ci:full-release. Po
opublikowaniu wersji beta przekaż release_package_spec=openclaw@YYYY.M.PATCH-beta.N, aby ponownie wykorzystać
wydany pakiet npm w kontrolach wydania, Package Acceptance, testach międzyplatformowych,
ścieżce wydania Dockera i testach pakietu Telegram. Używaj package_acceptance_package_spec
tylko wtedy, gdy Package Acceptance ma celowo zweryfikować inny pakiet.
Ścieżka testów rzeczywistych pakietu Pluginu Codex działa według tego samego stanu: opublikowane
wartości release_package_spec wyznaczają codex_plugin_spec=npm:@openclaw/codex@<version>;
uruchomienia SHA/artefaktów pakują extensions/codex z wybranego odwołania, a operatorzy
mogą ustawić codex_plugin_spec bezpośrednio dla źródeł Pluginu
npm:, npm-pack: lub git:. Ścieżka udziela jawnej zgody na instalację CLI Codex wymaganej przez
ten Plugin, a następnie wykonuje kontrolę wstępną CLI Codex i przebiegi agenta OpenAI w tej samej sesji.
Etapy najwyższego poziomu
Dlarerun_group=all najpierw wykonywane jest zadanie Check for reusable validation evidence:
wyszukuje ono najnowszą wcześniejszą zakończoną powodzeniem pełną walidację dla dokładnie tego samego
docelowego SHA, profilu wydania, efektywnego ustawienia długotrwałego testu i parametrów wejściowych walidacji.
Gdy taki dowód istnieje, każda ścieżka jest pomijana, a nadrzędny weryfikator
ponownie sprawdza niezmienny artefakt nadrzędny, uruchomienia podrzędne i dzienniki wywołań. Jest to
wyłącznie mechanizm odzyskiwania po ponownym uruchomieniu tego samego kandydata; nie zezwala na ponowne użycie między różnymi SHA. W przypadku
zmienionego kandydata uruchom ponownie każdą kontrolę pakietu, artefaktu, instalacji, Dockera lub dostawcy,
na którą wpływa ta zmiana. Przekaż reuse_evidence=false, aby wymusić nową pełną
walidację. Ponowne użycie dowodów działa tylko z main lub kanonicznego, przypiętego do SHA
odwołania release-ci/*, którego commit przepływu pracy pozostaje w zaufanej linii main;
inne odwołania przepływu pracy uruchamiają wybrane ścieżki od nowa.
Również dla rerun_group=all zadanie Verify Docker runtime image assets buduje
cel Dockera runtime-assets z
OPENCLAW_EXTENSIONS=diagnostics-otel,codex. Działa ono równolegle z
innymi etapami i jest egzekwowane przez nadrzędny weryfikator; ścieżki nie czekają już na
jego zakończenie przed uruchomieniem. Węższa wartość rerun_group pomija tę kontrolę wstępną.
Proces nadrzędny zawsze uruchamia testy wydajności produktu w trybie wyłącznie artefaktowym.
OpenClaw Performance zezwala na publikację raportu tylko dla zaplanowanych uruchomień lub
ręcznego wywołania, które jawnie ustawia publish_reports=true. Kontrola trybu wyłącznie artefaktowego
musi zakończyć się powodzeniem, potwierdzając, że zadanie publikujące pozostało pominięte.
Nowe i ponownie użyte dowody zapisują
controls.performanceReportPublication=artifact-only; weryfikator i selektor ponownego użycia
odrzucają dowody bez pasującego, znormalizowanego potwierdzenia z podrzędnego procesu wydajnościowego.
Weryfikator przesyła kanoniczny manifest jako
full-release-validation-<run-id>-<run-attempt>. Narzędzia obsługi dowodów weryfikują
identyfikator artefaktu, skrót, uruchomienie producenta i próbę przed pobraniem tego dokładnego
identyfikatora artefaktu. Nakładają limit na pobierany plik ZIP, weryfikują jego bajty względem skrótu REST
sha256: i strumieniowo odczytują jedyny dozwolony wpis manifestu o ograniczonym rozmiarze bez
rozpakowywania archiwum. Alias o stabilnej nazwie pozostaje tymczasowo dla starszych
konsumentów publikacji. Weryfikator zawsze preferuje artefakt z nazwą uwzględniającą próbę;
przejściowo akceptuje stabilną nazwę tylko dla producenta manifestu v2 z pierwszej próby.
Odrzuca tę starszą nazwę dla późniejszych prób i manifestu v3.
Dla ref=main z rerun_group=all, dla odwołań release/*
oraz odwołań alfa Tideclaw nowsze uruchomienie procesu nadrzędnego zastępuje starsze o tym samym
odwołaniu i tej samej grupie ponownego uruchomienia. Gdy proces nadrzędny zostaje anulowany, jego monitor anuluje każdy podrzędny
przepływ pracy, który został już uruchomiony. Uruchomienia walidacji tagów i przypiętych SHA nie
anulują się wzajemnie.
Etapy kontroli wydania
OpenClaw Release Checks jest największym podrzędnym przepływem pracy. Jednorazowo rozpoznaje cel
i przygotowuje współdzielony artefakt release-package-under-test, gdy wymagają go etapy
związane z pakietem lub Dockerem.
Fragmenty dockerowej ścieżki wydania
Etap dockerowej ścieżki wydania uruchamia następujące fragmenty, gdylive_suite_filter jest pusty:
Gdy nie powiedzie się tylko jedna ścieżka Dockera, użyj ukierunkowanego
docker_lanes=<lane[,lane]> w przepływie pracy wielokrotnego użytku dla testów
na żywo/E2E. Artefakty wydania zawierają polecenia ponownego uruchomienia dla
poszczególnych ścieżek wraz z parametrami ponownego użycia artefaktu pakietu
i obrazu, jeśli są dostępne.
Profile wydania
release_profile steruje głównie zakresem testów live/dostawców w ramach kontroli wydania.
Nie usuwa standardowego pełnego CI, wersji przedpremierowej Pluginu, testu dymnego
instalacji, akceptacji pakietu ani QA Lab. Profile stabilny i pełny zawsze uruchamiają
wyczerpujące testy E2E repozytorium/live oraz długotrwałe testy ścieżki wydania w Dockerze.
Profil beta może je włączyć za pomocą run_release_soak=true. Akceptacja pakietu zapewnia
kanoniczny test E2E Telegramu dla pakietu w przypadku każdego pełnego kandydata, dlatego
nadrzędny przepływ nie powiela tego pollera live.
Dodatki tylko dla profilu pełnego
Poniższe zestawy są pomijane przezstable i uwzględniane przez full:
stable obejmuje native-live-src-gateway-profiles-anthropic-smoke oraz
native-live-src-gateway-profiles-opencode-go-smoke; full używa zamiast nich
szerszych fragmentów modeli Anthropic i OpenCode Go. Ukierunkowane ponowne uruchomienia
mogą nadal używać zbiorczych uchwytów
native-live-src-gateway-profiles-anthropic lub
native-live-src-gateway-profiles-opencode-go.
Ukierunkowane ponowne uruchomienia
Użyjrerun_group, aby uniknąć powtarzania niepowiązanych środowisk wydania:
Gdy nie powiedzie się jeden zestaw live, użyj
live_suite_filter z
rerun_group=live-e2e. Prawidłowe identyfikatory filtrów są zdefiniowane w przepływie
wielokrotnego użytku live/E2E i obejmują
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 oraz
live-codex-harness-docker.
Uchwyt live-gateway-advisory-docker jest zbiorczym uchwytem ponownego uruchomienia
dla trzech fragmentów dostawców, dlatego nadal rozdziela się na wszystkie doradcze
zadania Gateway w Dockerze.
Gdy nie powiedzie się jedna ścieżka obejmująca wiele systemów operacyjnych, użyj
cross_os_suite_filter z rerun_group=cross-os. Filtr przyjmuje identyfikator systemu
operacyjnego, identyfikator zestawu lub parę system/zestaw, na przykład
windows/packaged-upgrade, windows albo packaged-fresh. Podsumowania dla wielu
systemów operacyjnych obejmują czasy poszczególnych faz ścieżek aktualizacji pakietowej,
a długotrwałe polecenia wypisują wiersze Heartbeat, dzięki czemu zawieszoną aktualizację
można zauważyć przed przekroczeniem limitu czasu zadania.
Niepowodzenia kontroli wydania QA blokują standardową walidację wydania. Kontrola
pokrycia narzędzi środowiska uruchomieniowego QA (dynamiczne rozbieżności narzędzi między
openclaw a codex na poziomie standardowym) również blokuje weryfikator kontroli
wydania, mimo że bazowa ścieżka zgodności środowiska uruchomieniowego QA ma charakter
doradczy. Uruchomienia alfa Tideclaw mogą nadal traktować ścieżki kontroli wydania
niezwiązane z bezpieczeństwem pakietu jako doradcze. Przy release_profile=beta zestawy
dostawców live w ramach Run repo/live E2E validation mają charakter doradczy:
wdrożenia modeli innych firm zmieniają się niezależnie od wydania, dlatego profil beta
przedstawia ich niepowodzenia jako ostrzeżenia, podczas gdy profile stabilny i pełny
nadal traktują je jako blokujące. Gdy live_suite_filter jawnie żąda warunkowej ścieżki
QA live, takiej jak Discord, WhatsApp lub Slack, odpowiednia zmienna repozytorium
OPENCLAW_RELEASE_QA_*_LIVE_CI_ENABLED musi być włączona; w przeciwnym razie
przechwytywanie danych wejściowych kończy się niepowodzeniem zamiast po cichu pomijać
ścieżkę. Uruchom ponownie rerun_group=qa, qa-parity lub qa-live, gdy potrzebujesz
aktualnych danych potwierdzających QA.
Dane, które należy zachować
Zachowaj podsumowanieFull Release Validation jako indeks na poziomie wydania. Zawiera
ono odnośniki do identyfikatorów przebiegów podrzędnych oraz tabele najwolniejszych zadań.
W przypadku niepowodzeń najpierw sprawdź przepływ podrzędny, a następnie ponownie uruchom
najmniejszy pasujący uchwyt wymieniony powyżej.
Przydatne artefakty:
release-package-under-testzOpenClaw Release Checks- artefakty ścieżki wydania w Dockerze w
.artifacts/docker-tests/ - artefakty
package-under-testz akceptacji pakietu oraz artefakty akceptacji w Dockerze - artefakty kontroli wydania na różnych systemach operacyjnych dla każdego systemu i zestawu
- artefakty zgodności QA, zgodności środowiska uruchomieniowego, Matrix i Telegramu
Pliki przepływów pracy
.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