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

推荐订阅源

阮一峰的网络日志
阮一峰的网络日志
The GitHub Blog
The GitHub Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
雷峰网
雷峰网
U
Unit 42
Y
Y Combinator Blog
I
InfoQ
P
Proofpoint News Feed
Engineering at Meta
Engineering at Meta
量子位
Microsoft Security Blog
Microsoft Security Blog
B
Blog
The Cloudflare Blog
F
Fortinet All Blogs
Google DeepMind News
Google DeepMind News
MyScale Blog
MyScale Blog
C
Check Point Blog
S
SegmentFault 最新的问题
爱范儿
爱范儿
博客园 - 叶小钗
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Hugging Face - Blog
Hugging Face - Blog
罗磊的独立博客
T
Tailwind CSS 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
ci: speed up release validation profiles · openclaw/openc...
steipete · 2026-05-10 · via Recent Commits to openclaw:main

@@ -37,6 +37,15 @@ on:

3737

required: true

3838

default: true

3939

type: boolean

40+

release_profile:

41+

description: Release coverage profile used for release evidence summaries

42+

required: false

43+

default: beta

44+

type: choice

45+

options:

46+

- beta

47+

- stable

48+

- full

4049

wait_for_clawhub:

4150

description: Wait for ClawHub plugin publish before marking this workflow complete

4251

required: true

@@ -62,7 +71,7 @@ jobs:

6271

runs-on: ubuntu-latest

6372

timeout-minutes: 20

6473

outputs:

65-

sha: ${{ steps.ref.outputs.sha }}

74+

sha: ${{ steps.manifest.outputs.sha || steps.ref.outputs.sha }}

6675

steps:

6776

- name: Validate inputs

6877

env:

@@ -72,6 +81,7 @@ jobs:

7281

PLUGIN_PUBLISH_SCOPE: ${{ inputs.plugin_publish_scope }}

7382

PLUGINS: ${{ inputs.plugins }}

7483

RELEASE_NPM_DIST_TAG: ${{ inputs.npm_dist_tag }}

84+

RELEASE_PROFILE: ${{ inputs.release_profile }}

7585

WORKFLOW_REF: ${{ github.ref }}

7686

run: |

7787

set -euo pipefail

@@ -103,6 +113,23 @@ jobs:

103113

echo "plugin_publish_scope=all-publishable must not include plugins." >&2

104114

exit 1

105115

fi

116+

case "$RELEASE_PROFILE" in

117+

beta|stable|full) ;;

118+

*)

119+

echo "release_profile must be one of: beta, stable, full" >&2

120+

exit 1

121+

;;

122+

esac

123+124+

- name: Download OpenClaw npm preflight manifest

125+

if: ${{ inputs.publish_openclaw_npm }}

126+

uses: actions/download-artifact@v8

127+

with:

128+

name: openclaw-npm-preflight-${{ inputs.tag }}

129+

path: preflight-manifest

130+

repository: ${{ github.repository }}

131+

run-id: ${{ inputs.preflight_run_id }}

132+

github-token: ${{ github.token }}

106133107134

- name: Checkout release tag

108135

uses: actions/checkout@v6

@@ -111,17 +138,53 @@ jobs:

111138

fetch-depth: 0

112139

persist-credentials: false

113140114-

- name: Setup Node environment

115-

uses: ./.github/actions/setup-node-env

116-

with:

117-

node-version: ${{ env.NODE_VERSION }}

118-

pnpm-version: ${{ env.PNPM_VERSION }}

119-

install-bun: "false"

120-121141

- name: Resolve checked-out release ref

122142

id: ref

123143

run: echo "sha=$(git rev-parse HEAD)" >> "$GITHUB_OUTPUT"

124144145+

- name: Validate OpenClaw npm preflight manifest

146+

id: manifest

147+

if: ${{ inputs.publish_openclaw_npm }}

148+

env:

149+

RELEASE_TAG: ${{ inputs.tag }}

150+

RELEASE_NPM_DIST_TAG: ${{ inputs.npm_dist_tag }}

151+

EXPECTED_SHA: ${{ steps.ref.outputs.sha }}

152+

run: |

153+

set -euo pipefail

154+

manifest="preflight-manifest/preflight-manifest.json"

155+

if [[ ! -f "$manifest" ]]; then

156+

echo "OpenClaw npm preflight manifest is missing." >&2

157+

ls -la preflight-manifest >&2 || true

158+

exit 1

159+

fi

160+

release_tag="$(jq -r '.releaseTag // ""' "$manifest")"

161+

release_sha="$(jq -r '.releaseSha // ""' "$manifest")"

162+

npm_dist_tag="$(jq -r '.npmDistTag // ""' "$manifest")"

163+

tarball_name="$(jq -r '.tarballName // ""' "$manifest")"

164+

tarball_sha256="$(jq -r '.tarballSha256 // ""' "$manifest")"

165+

if [[ "$release_tag" != "$RELEASE_TAG" ]]; then

166+

echo "Preflight manifest tag mismatch: expected $RELEASE_TAG, got $release_tag" >&2

167+

exit 1

168+

fi

169+

if [[ "$release_sha" != "$EXPECTED_SHA" ]]; then

170+

echo "Preflight manifest SHA mismatch: expected $EXPECTED_SHA, got $release_sha" >&2

171+

exit 1

172+

fi

173+

if [[ "$npm_dist_tag" != "$RELEASE_NPM_DIST_TAG" ]]; then

174+

echo "Preflight manifest npm dist-tag mismatch: expected $RELEASE_NPM_DIST_TAG, got $npm_dist_tag" >&2

175+

exit 1

176+

fi

177+

if [[ -z "$tarball_name" || ! -f "preflight-manifest/$tarball_name" ]]; then

178+

echo "Preflight manifest tarball is missing: $tarball_name" >&2

179+

exit 1

180+

fi

181+

actual_tarball_sha256="$(sha256sum "preflight-manifest/$tarball_name" | awk '{print $1}')"

182+

if [[ "$actual_tarball_sha256" != "$tarball_sha256" ]]; then

183+

echo "Preflight manifest tarball digest mismatch." >&2

184+

exit 1

185+

fi

186+

echo "sha=$release_sha" >> "$GITHUB_OUTPUT"

187+125188

- name: Validate release tag is reachable from main or release branch

126189

run: |

127190

set -euo pipefail

@@ -139,26 +202,25 @@ jobs:

139202

echo "Release tag must point to a commit reachable from main or release/*." >&2

140203

exit 1

141204142-

- name: Verify plugin versions were synced for this release

143-

run: pnpm plugins:sync:check

144-145205

- name: Summarize release target

146206

env:

147207

RELEASE_TAG: ${{ inputs.tag }}

148-

TARGET_SHA: ${{ steps.ref.outputs.sha }}

208+

TARGET_SHA: ${{ steps.manifest.outputs.sha || steps.ref.outputs.sha }}

209+

RELEASE_PROFILE: ${{ inputs.release_profile }}

149210

run: |

150211

{

151212

echo "### Release target"

152213

echo

153214

echo "- Tag: \`${RELEASE_TAG}\`"

154215

echo "- SHA: \`${TARGET_SHA}\`"

216+

echo "- Release profile: \`${RELEASE_PROFILE}\`"

155217

} >> "$GITHUB_STEP_SUMMARY"

156218157219

publish:

158220

name: Publish plugins, then OpenClaw

159221

needs: [resolve_release_target]

160222

runs-on: ubuntu-latest

161-

timeout-minutes: 90

223+

timeout-minutes: 60

162224

steps:

163225

- name: Dispatch publish workflows

164226

env: