mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 09:10:45 +00:00
test(update): cover authenticated restart updates
This commit is contained in:
@@ -78,6 +78,7 @@ pnpm test:docker:plugin-lifecycle-matrix
|
||||
pnpm test:docker:plugin-update
|
||||
pnpm test:docker:upgrade-survivor
|
||||
pnpm test:docker:published-upgrade-survivor
|
||||
pnpm test:docker:update-restart-auth
|
||||
pnpm test:docker:update-migration
|
||||
```
|
||||
|
||||
@@ -103,6 +104,10 @@ Important lanes:
|
||||
configures it through a baked `openclaw config set` recipe, updates it to the
|
||||
candidate tarball, runs doctor, checks legacy cleanup, starts the Gateway, and
|
||||
probes `/healthz`, `/readyz`, and RPC status.
|
||||
- `test:docker:update-restart-auth` installs the candidate package, starts a
|
||||
managed token-auth Gateway, unsets caller gateway auth env for
|
||||
`openclaw update --yes --json`, and requires the candidate update command to
|
||||
restart the Gateway before the normal probes.
|
||||
- `test:docker:update-migration` is the cleanup-heavy published-update lane. It
|
||||
starts from a configured Discord/Telegram-style user state, runs baseline
|
||||
doctor so configured plugin dependencies have a chance to materialize, seeds
|
||||
@@ -164,10 +169,10 @@ resolved release SHA. For post-publish proof, pass
|
||||
`package_acceptance_package_spec=openclaw@YYYY.M.D` so the same upgrade matrix
|
||||
targets the shipped npm package instead.
|
||||
|
||||
Release checks call Package Acceptance with the package/update/plugin set:
|
||||
Release checks call Package Acceptance with the package/update/restart/plugin set:
|
||||
|
||||
```text
|
||||
doctor-switch update-channel-switch upgrade-survivor published-upgrade-survivor plugins-offline plugin-update
|
||||
doctor-switch update-channel-switch upgrade-survivor published-upgrade-survivor update-restart-auth plugins-offline plugin-update
|
||||
```
|
||||
|
||||
When release soak is enabled, they also pass:
|
||||
@@ -224,7 +229,7 @@ For release candidates, the default proof stack is:
|
||||
1. `pnpm check:changed` and `pnpm test:changed` for source-level regressions.
|
||||
2. `pnpm release:check` for package artifact integrity.
|
||||
3. Package Acceptance `package` profile or the release-check custom package
|
||||
lanes for install/update/plugin contracts.
|
||||
lanes for install/update/restart/plugin contracts.
|
||||
4. Cross-OS release checks for OS-specific installer, onboarding, and platform
|
||||
behavior.
|
||||
5. Live suites only when the changed surface touches provider or hosted-service
|
||||
@@ -245,7 +250,8 @@ Compatibility leniency is narrow and time boxed:
|
||||
warning or skipping.
|
||||
|
||||
Do not add new startup migrations for these old shapes. Add or extend a doctor
|
||||
repair, then prove it with `upgrade-survivor` or `published-upgrade-survivor`.
|
||||
repair, then prove it with `upgrade-survivor`, `published-upgrade-survivor`, or
|
||||
`update-restart-auth` when the update command owns the restart.
|
||||
|
||||
## Adding coverage
|
||||
|
||||
@@ -257,6 +263,7 @@ can fail for the right reason:
|
||||
checker test.
|
||||
- CLI install/update behavior: Docker lane assertion or fixture.
|
||||
- Published-release migration behavior: `published-upgrade-survivor` scenario.
|
||||
- Update-owned restart behavior: `update-restart-auth`.
|
||||
- Registry/package source behavior: `test:docker:plugins` fixture or ClawHub
|
||||
fixture server.
|
||||
- Dependency layout or cleanup behavior: assert both runtime execution and the
|
||||
|
||||
@@ -141,11 +141,13 @@ the maintainer-only release runbook.
|
||||
`telegram_mode=mock-openai` or `telegram_mode=live-frontier`. When the
|
||||
selected Docker lanes include `published-upgrade-survivor`, the package
|
||||
artifact is the candidate and `published_upgrade_survivor_baseline` selects
|
||||
the published baseline.
|
||||
the published baseline. `update-restart-auth` uses the candidate package as
|
||||
both the installed CLI and the package-under-test so it exercises the
|
||||
candidate update command's managed restart path.
|
||||
Example: `gh workflow run package-acceptance.yml --ref main -f workflow_ref=main -f source=npm -f package_spec=openclaw@beta -f suite_profile=product -f published_upgrade_survivor_baseline=openclaw@2026.4.26 -f telegram_mode=mock-openai`
|
||||
Common profiles:
|
||||
- `smoke`: install/channel/agent, gateway network, and config reload lanes
|
||||
- `package`: artifact-native package/update/plugin lanes without OpenWebUI or live ClawHub
|
||||
- `package`: artifact-native package/update/restart/plugin lanes without OpenWebUI or live ClawHub
|
||||
- `product`: package profile plus MCP channels, cron/subagent cleanup,
|
||||
OpenAI web search, and OpenWebUI
|
||||
- `full`: Docker release-path chunks with OpenWebUI
|
||||
@@ -486,11 +488,12 @@ Supported candidate sources:
|
||||
|
||||
`OpenClaw Release Checks` runs Package Acceptance with `source=artifact`, the
|
||||
prepared release package artifact, `suite_profile=custom`,
|
||||
`docker_lanes=doctor-switch update-channel-switch upgrade-survivor published-upgrade-survivor plugins-offline plugin-update`,
|
||||
`telegram_mode=mock-openai`. Package Acceptance keeps migration, update, stale
|
||||
plugin dependency cleanup, offline plugin fixtures, plugin update, and Telegram
|
||||
package QA against the same resolved tarball. Blocking release checks use the
|
||||
default latest published package baseline; `run_release_soak=true` or
|
||||
`docker_lanes=doctor-switch update-channel-switch upgrade-survivor published-upgrade-survivor update-restart-auth plugins-offline plugin-update`,
|
||||
`telegram_mode=mock-openai`. Package Acceptance keeps migration, update,
|
||||
configured-auth update restart, stale plugin dependency cleanup, offline plugin
|
||||
fixtures, plugin update, and Telegram package QA against the same resolved
|
||||
tarball. Blocking release checks use the default latest published package
|
||||
baseline; `run_release_soak=true` or
|
||||
`release_profile=full` expands to every stable npm-published baseline from
|
||||
`2026.4.23` through `latest` plus reported-issue fixtures. Use
|
||||
Package Acceptance with `source=npm` for an already shipped candidate, or
|
||||
@@ -536,8 +539,8 @@ Common package profiles:
|
||||
|
||||
- `smoke`: quick package install/channel/agent, gateway network, and config
|
||||
reload lanes
|
||||
- `package`: install/update/plugin package contracts without live ClawHub; this is the release-check
|
||||
default
|
||||
- `package`: install/update/restart/plugin package contracts without live
|
||||
ClawHub; this is the release-check default
|
||||
- `product`: `package` plus MCP channels, cron/subagent cleanup, OpenAI web
|
||||
search, and OpenWebUI
|
||||
- `full`: Docker release-path chunks with OpenWebUI
|
||||
|
||||
Reference in New Issue
Block a user