惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
C
Check Point Blog
J
Java Code Geeks
腾讯CDC
Martin Fowler
Martin Fowler
MongoDB | Blog
MongoDB | Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园 - 三生石上(FineUI控件)
Apple Machine Learning Research
Apple Machine Learning Research
大猫的无限游戏
大猫的无限游戏
Engineering at Meta
Engineering at Meta
罗磊的独立博客
Last Week in AI
Last Week in AI
B
Blog
IT之家
IT之家
S
SegmentFault 最新的问题
D
DataBreaches.Net
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
GbyAI
GbyAI
博客园 - 聂微东
U
Unit 42
有赞技术团队
有赞技术团队
Y
Y Combinator Blog
MyScale Blog
MyScale Blog

Recent Commits to openclaw:main

test: merge chat side-result checks · openclaw/openclaw@ddd2c2a test: merge cron history checks · openclaw/openclaw@f7eb746 test: merge responsive navigation shell checks · openclaw/openclaw@c2e4b47 docs(changelog): add codex oauth fixes · openclaw/openclaw@628e6cd test: merge navigation routing cases · openclaw/openclaw@5d8cecb Tests: mock channel registry bundled fallback · openclaw/openclaw@2b08233 Secrets: avoid broad web search discovery for single plugin config · openclaw/openclaw@a464f59 test: merge config view browser checks · openclaw/openclaw@20cf511 fix(status): align oauth health with runtime · openclaw/openclaw@eed7116 feat: add macOS screen snapshots for monitor preview (#67954) thanks … · openclaw/openclaw@f377db1 fix: report shared auth scopes in hello-ok (#67810) thanks @BunsDev · openclaw/openclaw@0b6c39b Auto-reply: avoid eager bundled route fallback · openclaw/openclaw@3ea1bf4 Tests: narrow session binding contract setup · openclaw/openclaw@54e4e16 fix(macOS): enable undo/redo in webchat composer text input (#34962) · openclaw/openclaw@00951dc Tests: speed up channel setup promotion · openclaw/openclaw@82b529a Docs: refresh agent instructions · openclaw/openclaw@5775fe2 fix(auth): serialize OAuth refresh across agents to fix #26322 (#67876) · openclaw/openclaw@8e79080 test: allow ollama public surface boundary test · openclaw/openclaw@7d4f1a6 Docs: add test performance guardrails · openclaw/openclaw@89706d3 Tests: restore context-engine usage proof · openclaw/openclaw@e4c4f95 Tests: slim context engine runtime coverage · openclaw/openclaw@74c198f ci: retry failed custom checkouts · openclaw/openclaw@0ee5baf test: trim duplicate provider auth onboarding cases · openclaw/openclaw@1ffc02e matrix: fix sessions_spawn --thread subagent session spawning (#67643) · openclaw/openclaw@1ce2596 test: reduce auth choice fixture churn · openclaw/openclaw@857b9cd test: mock health status config boundaries · openclaw/openclaw@9d5ab4a test: mock onboard config io boundary · openclaw/openclaw@299694d test: mock legacy state plugin boundaries · openclaw/openclaw@2713089 test: mock channel install boundaries · openclaw/openclaw@b945248 test: mock doctor preview channel boundaries · openclaw/openclaw@b1a3ad4
docs: explain release validation entrypoints · openclaw/o...
steipete · 2026-04-27 · via Recent Commits to openclaw:main

@@ -26,6 +26,114 @@ workflow checkout. Profiles cover smoke, package, product, full, and custom

2626

Docker lane selections. The optional Telegram lane is published-npm only and

2727

reuses the `NPM Telegram Beta E2E` workflow.

282829+

## Package Acceptance

30+31+

Use `Package Acceptance` when the question is "does this installable OpenClaw

32+

package work as a product?" It is different from normal CI: normal CI validates

33+

the source tree, while package acceptance validates a single tarball through the

34+

same Docker E2E harness users exercise after install or update.

35+36+

The workflow has four jobs:

37+38+

1. `resolve_package` checks out `workflow_ref`, resolves one package candidate,

39+

writes `.artifacts/docker-e2e-package/openclaw-current.tgz`, writes

40+

`.artifacts/docker-e2e-package/package-candidate.json`, uploads both as the

41+

`package-under-test` artifact, and prints the source, workflow ref, package

42+

ref, version, SHA-256, and profile in the GitHub step summary.

43+

2. `docker_acceptance` calls

44+

`openclaw-live-and-e2e-checks-reusable.yml` with `ref=workflow_ref` and

45+

`package_artifact_name=package-under-test`. The reusable workflow downloads

46+

that artifact, validates the tarball inventory, prepares package-digest

47+

Docker images when needed, and runs the selected Docker lanes against that

48+

package instead of packing the workflow checkout.

49+

3. `npm_telegram` optionally calls `NPM Telegram Beta E2E`. It runs only when

50+

`telegram_mode` is not `none`, and only for `source=npm`, because that lane

51+

installs a published package spec.

52+

4. `summary` fails the workflow if package resolution, Docker acceptance, or

53+

the optional Telegram lane failed.

54+55+

Candidate sources:

56+57+

- `source=npm`: accepts only `openclaw@beta`, `openclaw@latest`, or an exact

58+

OpenClaw release version such as `openclaw@2026.4.27-beta.2`. Use this for

59+

published beta/stable acceptance.

60+

- `source=ref`: packs a trusted `package_ref` branch, tag, or full commit SHA.

61+

The resolver fetches OpenClaw branches/tags, verifies the selected commit is

62+

reachable from repository branch history or a release tag, installs deps in a

63+

detached worktree, and packs it with `scripts/package-openclaw-for-docker.mjs`.

64+

- `source=url`: downloads an HTTPS `.tgz`; `package_sha256` is required.

65+

- `source=artifact`: downloads one `.tgz` from `artifact_run_id` and

66+

`artifact_name`; `package_sha256` is optional but should be supplied for

67+

externally shared artifacts.

68+69+

Keep `workflow_ref` and `package_ref` separate. `workflow_ref` is the trusted

70+

workflow/harness code that runs the test. `package_ref` is the source commit

71+

that gets packed when `source=ref`. This lets the current test harness validate

72+

older trusted source commits without running old workflow logic.

73+74+

Profiles map to Docker coverage:

75+76+

- `smoke`: `npm-onboard-channel-agent`, `gateway-network`, `config-reload`

77+

- `package`: `install-e2e`, `npm-onboard-channel-agent`, `doctor-switch`,

78+

`update-channel-switch`, `bundled-channel-deps`, `plugins`, `plugin-update`

79+

- `product`: `package` plus `mcp-channels`, `cron-mcp-cleanup`,

80+

`openai-web-search-minimal`, `openwebui`

81+

- `full`: full Docker release-path chunks with OpenWebUI

82+

- `custom`: exact `docker_lanes`; required when `suite_profile=custom`

83+84+

Release checks call Package Acceptance with `source=ref`,

85+

`package_ref=<release-ref>`, `workflow_ref=<release workflow ref>`, and

86+

`suite_profile=package`. That profile is the GitHub-native replacement for most

87+

Parallels package/update validation. Cross-OS release checks still cover

88+

OS-specific onboarding, installer, and platform behavior; package/update

89+

product validation should start with Package Acceptance.

90+91+

Examples:

92+93+

```bash

94+

# Validate the current beta package with product-level coverage.

95+

gh workflow run package-acceptance.yml \

96+

--ref main \

97+

-f workflow_ref=main \

98+

-f source=npm \

99+

-f package_spec=openclaw@beta \

100+

-f suite_profile=product

101+102+

# Pack and validate a release branch with the current harness.

103+

gh workflow run package-acceptance.yml \

104+

--ref main \

105+

-f workflow_ref=main \

106+

-f source=ref \

107+

-f package_ref=release/YYYY.M.D \

108+

-f suite_profile=package

109+110+

# Validate a tarball URL. SHA-256 is mandatory for source=url.

111+

gh workflow run package-acceptance.yml \

112+

--ref main \

113+

-f workflow_ref=main \

114+

-f source=url \

115+

-f package_url=https://example.com/openclaw-current.tgz \

116+

-f package_sha256=<64-char-sha256> \

117+

-f suite_profile=smoke

118+119+

# Reuse a tarball uploaded by another Actions run.

120+

gh workflow run package-acceptance.yml \

121+

--ref main \

122+

-f workflow_ref=main \

123+

-f source=artifact \

124+

-f artifact_run_id=<run-id> \

125+

-f artifact_name=package-under-test \

126+

-f suite_profile=custom \

127+

-f docker_lanes='install-e2e plugin-update'

128+

```

129+130+

When debugging a failed package acceptance run, start at the `resolve_package`

131+

summary to confirm the package source, version, and SHA-256. Then inspect the

132+

`docker_acceptance` child run and its Docker artifacts:

133+

`.artifacts/docker-tests/**/summary.json`, `failures.json`, lane logs, phase

134+

timings, and rerun commands. Prefer rerunning the failed package profile or

135+

exact Docker lanes instead of rerunning full release validation.

136+29137

QA Lab has dedicated CI lanes outside the main smart-scoped workflow. The

30138

`Parity gate` workflow runs on matching PR changes and manual dispatch; it

31139

builds the private QA runtime and compares the mock GPT-5.5 and Opus 4.6