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

推荐订阅源

博客园 - 三生石上(FineUI控件)
月光博客
月光博客
S
SegmentFault 最新的问题
有赞技术团队
有赞技术团队
Stack Overflow Blog
Stack Overflow Blog
Engineering at Meta
Engineering at Meta
T
The Blog of Author Tim Ferriss
The GitHub Blog
The GitHub Blog
小众软件
小众软件
Hugging Face - Blog
Hugging Face - Blog
IT之家
IT之家
宝玉的分享
宝玉的分享
A
About on SuperTechFans
Vercel News
Vercel News
P
Proofpoint News Feed
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 【当耐特】
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
V
Visual Studio Blog
Jina AI
Jina AI
Y
Y Combinator Blog
T
Tailwind CSS Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Last Week in AI
Last Week in AI

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: tighten full release validation · openclaw/openclaw@2...
steipete · 2026-05-01 · via Recent Commits to openclaw:main

@@ -28,6 +28,11 @@ on:

2828

required: false

2929

default: ""

3030

type: string

31+

targeted_docker_lane_group_size:

32+

description: Number of targeted Docker lanes to batch into one runner job

33+

required: false

34+

default: 1

35+

type: number

3136

package_artifact_name:

3237

description: Existing workflow artifact containing openclaw-current.tgz; blank packs the selected ref

3338

required: false

@@ -71,7 +76,7 @@ on:

7176

release_test_profile:

7277

description: Release coverage profile for live/Docker/provider breadth

7378

required: false

74-

default: full

79+

default: stable

7580

type: choice

7681

options:

7782

- minimum

@@ -103,6 +108,11 @@ on:

103108

required: false

104109

default: ""

105110

type: string

111+

targeted_docker_lane_group_size:

112+

description: Number of targeted Docker lanes to batch into one runner job

113+

required: false

114+

default: 1

115+

type: number

106116

package_artifact_name:

107117

description: Existing workflow artifact containing openclaw-current.tgz; blank packs the selected ref

108118

required: false

@@ -146,7 +156,7 @@ on:

146156

release_test_profile:

147157

description: Release coverage profile for live/Docker/provider breadth

148158

required: false

149-

default: full

159+

default: stable

150160

type: string

151161

secrets:

152162

OPENAI_API_KEY:

@@ -374,6 +384,10 @@ jobs:

374384

add_profile_suite native-live-extensions-xai "full"

375385376386

add_profile_suite live-gateway-docker "minimum stable full"

387+

add_profile_suite live-gateway-anthropic-docker "stable full"

388+

add_profile_suite live-gateway-google-docker "stable full"

389+

add_profile_suite live-gateway-minimax-docker "stable full"

390+

add_profile_suite live-gateway-advisory-docker "full"

377391

add_profile_suite live-cli-backend-docker "stable full"

378392

add_profile_suite live-acp-bind-docker "stable full"

379393

add_profile_suite live-codex-harness-docker "stable full"

@@ -815,16 +829,27 @@ jobs:

815829

shell: bash

816830

env:

817831

LANES: ${{ inputs.docker_lanes }}

832+

GROUP_SIZE: ${{ inputs.targeted_docker_lane_group_size }}

818833

run: |

819834

set -euo pipefail

820835

groups_json="$(

821-

LANES="$LANES" node <<'NODE'

836+

LANES="$LANES" GROUP_SIZE="$GROUP_SIZE" node <<'NODE'

822837

const lanes = [...new Set(String(process.env.LANES || "").split(/[,\s]+/u).map((lane) => lane.trim()).filter(Boolean))];

823838

if (lanes.length === 0) {

824839

throw new Error("docker_lanes is required when planning targeted Docker lane groups.");

825840

}

841+

const rawGroupSize = Number.parseInt(process.env.GROUP_SIZE || "1", 10);

842+

const groupSize = Number.isFinite(rawGroupSize) && rawGroupSize > 0 ? rawGroupSize : 1;

826843

const sanitize = (lane) => lane.replace(/[^A-Za-z0-9._-]+/g, "-").replace(/^-+|-+$/g, "") || "targeted";

827-

process.stdout.write(JSON.stringify(lanes.map((lane) => ({ label: sanitize(lane), docker_lanes: lane }))));

844+

const groups = [];

845+

for (let index = 0; index < lanes.length; index += groupSize) {

846+

const groupLanes = lanes.slice(index, index + groupSize);

847+

const first = sanitize(groupLanes[0]);

848+

const last = sanitize(groupLanes[groupLanes.length - 1]);

849+

const label = groupLanes.length === 1 ? first : `${first}--${last}`;

850+

groups.push({ label, docker_lanes: groupLanes.join(" ") });

851+

}

852+

process.stdout.write(JSON.stringify(groups));

828853

NODE

829854

)"

830855

echo "groups_json=${groups_json}" >> "$GITHUB_OUTPUT"

@@ -834,7 +859,7 @@ jobs:

834859

if: inputs.docker_lanes != ''

835860

name: Docker E2E targeted lanes (${{ matrix.group.label }})

836861

runs-on: blacksmith-32vcpu-ubuntu-2404

837-

timeout-minutes: 180

862+

timeout-minutes: 90

838863

strategy:

839864

fail-fast: false

840865

matrix:

@@ -1468,7 +1493,7 @@ jobs:

14681493

needs: [validate_selected_ref, prepare_live_test_image]

14691494

if: inputs.include_live_suites && inputs.live_model_providers == '' && (inputs.live_suite_filter == '' || inputs.live_suite_filter == 'docker-live-models')

14701495

runs-on: blacksmith-32vcpu-ubuntu-2404

1471-

timeout-minutes: 75

1496+

timeout-minutes: 45

14721497

strategy:

14731498

fail-fast: false

14741499

matrix:

@@ -1536,6 +1561,8 @@ jobs:

15361561

FIREWORKS_API_KEY: ${{ secrets.FIREWORKS_API_KEY }}

15371562

OPENCLAW_LIVE_PROVIDERS: ${{ matrix.providers }}

15381563

OPENCLAW_LIVE_IMAGE: ${{ needs.prepare_live_test_image.outputs.live_image }}

1564+

OPENCLAW_LIVE_MAX_MODELS: "6"

1565+

OPENCLAW_LIVE_MODEL_TIMEOUT_MS: "45000"

15391566

OPENCLAW_SKIP_DOCKER_BUILD: "1"

15401567

OPENCLAW_VITEST_MAX_WORKERS: "2"

15411568

steps:

@@ -1611,14 +1638,14 @@ jobs:

1611163816121639

- name: Run Docker live model sweep

16131640

if: contains(matrix.profiles, inputs.release_test_profile)

1614-

run: OPENCLAW_LIVE_DOCKER_REPO_ROOT="$GITHUB_WORKSPACE" bash .release-harness/scripts/test-live-models-docker.sh

1641+

run: OPENCLAW_LIVE_DOCKER_REPO_ROOT="$GITHUB_WORKSPACE" timeout --foreground --kill-after=30s 35m bash .release-harness/scripts/test-live-models-docker.sh

1615164216161643

validate_live_models_docker_targeted:

16171644

name: Docker live models (selected providers)

16181645

needs: [validate_selected_ref, prepare_live_test_image]

16191646

if: inputs.include_live_suites && inputs.live_model_providers != '' && (inputs.live_suite_filter == '' || inputs.live_suite_filter == 'docker-live-models')

16201647

runs-on: blacksmith-32vcpu-ubuntu-2404

1621-

timeout-minutes: 75

1648+

timeout-minutes: 45

16221649

env:

16231650

OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}

16241651

OPENAI_BASE_URL: ${{ secrets.OPENAI_BASE_URL }}

@@ -1655,6 +1682,8 @@ jobs:

16551682

FIREWORKS_API_KEY: ${{ secrets.FIREWORKS_API_KEY }}

16561683

REQUESTED_LIVE_MODEL_PROVIDERS: ${{ inputs.live_model_providers }}

16571684

OPENCLAW_LIVE_IMAGE: ${{ needs.prepare_live_test_image.outputs.live_image }}

1685+

OPENCLAW_LIVE_MAX_MODELS: "6"

1686+

OPENCLAW_LIVE_MODEL_TIMEOUT_MS: "45000"

16581687

OPENCLAW_SKIP_DOCKER_BUILD: "1"

16591688

OPENCLAW_VITEST_MAX_WORKERS: "2"

16601689

steps:

@@ -1785,7 +1814,7 @@ jobs:

17851814

done

1786181517871816

- name: Run Docker live model sweep

1788-

run: OPENCLAW_LIVE_DOCKER_REPO_ROOT="$GITHUB_WORKSPACE" bash .release-harness/scripts/test-live-models-docker.sh

1817+

run: OPENCLAW_LIVE_DOCKER_REPO_ROOT="$GITHUB_WORKSPACE" timeout --foreground --kill-after=30s 35m bash .release-harness/scripts/test-live-models-docker.sh

1789181817901819

validate_live_provider_suites:

17911820

needs: validate_selected_ref

@@ -2099,27 +2128,51 @@ jobs:

20992128

matrix:

21002129

include:

21012130

- suite_id: live-gateway-docker

2102-

label: Docker live gateway

2103-

command: OPENCLAW_LIVE_DOCKER_REPO_ROOT="$GITHUB_WORKSPACE" bash .release-harness/scripts/test-live-gateway-models-docker.sh

2104-

timeout_minutes: 120

2131+

label: Docker live gateway OpenAI

2132+

command: OPENCLAW_LIVE_GATEWAY_PROVIDERS=openai OPENCLAW_LIVE_GATEWAY_MAX_MODELS=2 OPENCLAW_LIVE_GATEWAY_STEP_TIMEOUT_MS=30000 OPENCLAW_LIVE_GATEWAY_MODEL_TIMEOUT_MS=60000 OPENCLAW_LIVE_DOCKER_REPO_ROOT="$GITHUB_WORKSPACE" timeout --foreground --kill-after=30s 25m bash .release-harness/scripts/test-live-gateway-models-docker.sh

2133+

timeout_minutes: 30

21052134

profile_env_only: false

21062135

profiles: minimum stable full

2136+

- suite_id: live-gateway-anthropic-docker

2137+

label: Docker live gateway Anthropic

2138+

command: OPENCLAW_LIVE_GATEWAY_PROVIDERS=anthropic OPENCLAW_LIVE_GATEWAY_MAX_MODELS=2 OPENCLAW_LIVE_GATEWAY_STEP_TIMEOUT_MS=30000 OPENCLAW_LIVE_GATEWAY_MODEL_TIMEOUT_MS=60000 OPENCLAW_LIVE_DOCKER_REPO_ROOT="$GITHUB_WORKSPACE" timeout --foreground --kill-after=30s 25m bash .release-harness/scripts/test-live-gateway-models-docker.sh

2139+

timeout_minutes: 30

2140+

profile_env_only: false

2141+

profiles: stable full

2142+

- suite_id: live-gateway-google-docker

2143+

label: Docker live gateway Google

2144+

command: OPENCLAW_LIVE_GATEWAY_PROVIDERS=google OPENCLAW_LIVE_GATEWAY_MODELS=google/gemini-3.1-pro-preview,google/gemini-3-flash-preview OPENCLAW_LIVE_GATEWAY_MAX_MODELS=2 OPENCLAW_LIVE_GATEWAY_STEP_TIMEOUT_MS=30000 OPENCLAW_LIVE_GATEWAY_MODEL_TIMEOUT_MS=60000 OPENCLAW_LIVE_DOCKER_REPO_ROOT="$GITHUB_WORKSPACE" timeout --foreground --kill-after=30s 25m bash .release-harness/scripts/test-live-gateway-models-docker.sh

2145+

timeout_minutes: 30

2146+

profile_env_only: false

2147+

profiles: stable full

2148+

- suite_id: live-gateway-minimax-docker

2149+

label: Docker live gateway MiniMax

2150+

command: OPENCLAW_LIVE_GATEWAY_PROVIDERS=minimax,minimax-portal OPENCLAW_LIVE_GATEWAY_MAX_MODELS=2 OPENCLAW_LIVE_GATEWAY_STEP_TIMEOUT_MS=30000 OPENCLAW_LIVE_GATEWAY_MODEL_TIMEOUT_MS=60000 OPENCLAW_LIVE_DOCKER_REPO_ROOT="$GITHUB_WORKSPACE" timeout --foreground --kill-after=30s 25m bash .release-harness/scripts/test-live-gateway-models-docker.sh

2151+

timeout_minutes: 30

2152+

profile_env_only: false

2153+

profiles: stable full

2154+

- suite_id: live-gateway-advisory-docker

2155+

label: Docker live gateway advisory providers

2156+

command: OPENCLAW_LIVE_GATEWAY_PROVIDERS=deepseek,fireworks,opencode-go,openrouter,xai,zai OPENCLAW_LIVE_GATEWAY_MAX_MODELS=6 OPENCLAW_LIVE_GATEWAY_STEP_TIMEOUT_MS=30000 OPENCLAW_LIVE_GATEWAY_MODEL_TIMEOUT_MS=60000 OPENCLAW_LIVE_DOCKER_REPO_ROOT="$GITHUB_WORKSPACE" timeout --foreground --kill-after=30s 35m bash .release-harness/scripts/test-live-gateway-models-docker.sh

2157+

timeout_minutes: 40

2158+

profile_env_only: false

2159+

profiles: full

21072160

- suite_id: live-cli-backend-docker

21082161

label: Docker live CLI backend

2109-

command: OPENCLAW_LIVE_DOCKER_REPO_ROOT="$GITHUB_WORKSPACE" bash .release-harness/scripts/test-live-cli-backend-docker.sh

2110-

timeout_minutes: 120

2162+

command: OPENCLAW_LIVE_DOCKER_REPO_ROOT="$GITHUB_WORKSPACE" timeout --foreground --kill-after=30s 45m bash .release-harness/scripts/test-live-cli-backend-docker.sh

2163+

timeout_minutes: 50

21112164

profile_env_only: false

21122165

profiles: stable full

21132166

- suite_id: live-acp-bind-docker

21142167

label: Docker live ACP bind

2115-

command: OPENCLAW_LIVE_DOCKER_REPO_ROOT="$GITHUB_WORKSPACE" bash .release-harness/scripts/test-live-acp-bind-docker.sh

2116-

timeout_minutes: 120

2168+

command: OPENCLAW_LIVE_DOCKER_REPO_ROOT="$GITHUB_WORKSPACE" timeout --foreground --kill-after=30s 45m bash .release-harness/scripts/test-live-acp-bind-docker.sh

2169+

timeout_minutes: 50

21172170

profile_env_only: false

21182171

profiles: stable full

21192172

- suite_id: live-codex-harness-docker

21202173

label: Docker live Codex harness

2121-

command: OPENCLAW_LIVE_DOCKER_REPO_ROOT="$GITHUB_WORKSPACE" bash .release-harness/scripts/test-live-codex-harness-docker.sh

2122-

timeout_minutes: 120

2174+

command: OPENCLAW_LIVE_DOCKER_REPO_ROOT="$GITHUB_WORKSPACE" timeout --foreground --kill-after=30s 35m bash .release-harness/scripts/test-live-codex-harness-docker.sh

2175+

timeout_minutes: 40

21232176

profile_env_only: false

21242177

profiles: stable full

21252178

env: