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

推荐订阅源

G
Google Developers Blog
博客园 - 司徒正美
Last Week in AI
Last Week in AI
Recent Announcements
Recent Announcements
Y
Y Combinator Blog
博客园 - 聂微东
M
MIT News - Artificial intelligence
博客园_首页
Jina AI
Jina AI
博客园 - 叶小钗
酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hackread – Cybersecurity News, Data Breaches, AI and More
J
Java Code Geeks
F
Fortinet All Blogs
aimingoo的专栏
aimingoo的专栏
小众软件
小众软件
Vercel News
Vercel News
The Cloudflare Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
云风的 BLOG
云风的 BLOG
N
Netflix TechBlog - Medium
B
Blog
Google DeepMind News
Google DeepMind News
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

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: reuse docker e2e plan action · openclaw/openclaw@7a86448
steipete · 2026-04-27 · via Recent Commits to openclaw:main

@@ -466,54 +466,13 @@ jobs:

466466

- name: Hydrate live auth/profile inputs

467467

run: bash scripts/ci-hydrate-live-auth.sh

468468469-

- name: Plan Docker E2E chunk

469+

- name: Plan and hydrate Docker E2E chunk

470470

id: plan

471-

shell: bash

472-

run: |

473-

set -euo pipefail

474-

mkdir -p .artifacts/docker-tests

475-

export OPENCLAW_DOCKER_ALL_PROFILE=release-path

476-

export OPENCLAW_DOCKER_ALL_CHUNK="${DOCKER_E2E_CHUNK}"

477-

export OPENCLAW_DOCKER_ALL_INCLUDE_OPENWEBUI="${INCLUDE_OPENWEBUI}"

478-

node scripts/test-docker-all.mjs --plan-json > ".artifacts/docker-tests/release-${DOCKER_E2E_CHUNK}-plan.json"

479-

node scripts/docker-e2e.mjs github-outputs ".artifacts/docker-tests/release-${DOCKER_E2E_CHUNK}-plan.json" >> "$GITHUB_OUTPUT"

480-481-

- name: Download OpenClaw Docker E2E package

482-

if: steps.plan.outputs.needs_package == '1'

483-

uses: actions/download-artifact@v8

471+

uses: ./.github/actions/docker-e2e-plan

484472

with:

485-

name: docker-e2e-package

486-

path: .artifacts/docker-e2e-package

487-488-

- name: Pull shared bare Docker E2E image

489-

if: steps.plan.outputs.needs_bare_image == '1'

490-

shell: bash

491-

run: |

492-

set -euo pipefail

493-

docker pull "${OPENCLAW_DOCKER_E2E_BARE_IMAGE}"

494-495-

- name: Pull shared functional Docker E2E image

496-

if: steps.plan.outputs.needs_functional_image == '1'

497-

shell: bash

498-

run: |

499-

set -euo pipefail

500-

docker pull "${OPENCLAW_DOCKER_E2E_FUNCTIONAL_IMAGE}"

501-502-

- name: Validate chunk credentials

503-

shell: bash

504-

run: |

505-

set -euo pipefail

506-

credentials=",${{ steps.plan.outputs.credentials }},"

507-

if [[ "$credentials" == *",openai,"* ]]; then

508-

[[ -n "${OPENAI_API_KEY:-}" ]] || {

509-

echo "OPENAI_API_KEY is required for selected Docker E2E lanes." >&2

510-

exit 1

511-

}

512-

fi

513-

if [[ "$credentials" == *",anthropic,"* && -z "${ANTHROPIC_API_TOKEN:-}" && -z "${ANTHROPIC_API_KEY:-}" ]]; then

514-

echo "ANTHROPIC_API_TOKEN or ANTHROPIC_API_KEY is required for selected Docker E2E lanes." >&2

515-

exit 1

516-

fi

473+

mode: chunk

474+

chunk: ${{ matrix.chunk_id }}

475+

include-openwebui: ${{ inputs.include_openwebui }}

517476518477

- name: Run Docker E2E chunk

519478

shell: bash

@@ -632,53 +591,13 @@ jobs:

632591

- name: Hydrate live auth/profile inputs

633592

run: bash scripts/ci-hydrate-live-auth.sh

634593635-

- name: Plan targeted Docker E2E lanes

594+

- name: Plan and hydrate targeted Docker E2E lanes

636595

id: plan

637-

shell: bash

638-

run: |

639-

set -euo pipefail

640-

mkdir -p .artifacts/docker-tests

641-

export OPENCLAW_DOCKER_ALL_LANES="${DOCKER_E2E_LANES}"

642-

export OPENCLAW_DOCKER_ALL_INCLUDE_OPENWEBUI="${INCLUDE_OPENWEBUI}"

643-

node scripts/test-docker-all.mjs --plan-json > .artifacts/docker-tests/targeted-plan.json

644-

node scripts/docker-e2e.mjs github-outputs .artifacts/docker-tests/targeted-plan.json >> "$GITHUB_OUTPUT"

645-646-

- name: Download OpenClaw Docker E2E package

647-

if: steps.plan.outputs.needs_package == '1'

648-

uses: actions/download-artifact@v8

596+

uses: ./.github/actions/docker-e2e-plan

649597

with:

650-

name: docker-e2e-package

651-

path: .artifacts/docker-e2e-package

652-653-

- name: Pull shared bare Docker E2E image

654-

if: steps.plan.outputs.needs_bare_image == '1'

655-

shell: bash

656-

run: |

657-

set -euo pipefail

658-

docker pull "${OPENCLAW_DOCKER_E2E_BARE_IMAGE}"

659-660-

- name: Pull shared functional Docker E2E image

661-

if: steps.plan.outputs.needs_functional_image == '1'

662-

shell: bash

663-

run: |

664-

set -euo pipefail

665-

docker pull "${OPENCLAW_DOCKER_E2E_FUNCTIONAL_IMAGE}"

666-667-

- name: Validate targeted lane credentials

668-

shell: bash

669-

run: |

670-

set -euo pipefail

671-

credentials=",${{ steps.plan.outputs.credentials }},"

672-

if [[ "$credentials" == *",openai,"* ]]; then

673-

[[ -n "${OPENAI_API_KEY:-}" ]] || {

674-

echo "OPENAI_API_KEY is required for selected Docker E2E lanes." >&2

675-

exit 1

676-

}

677-

fi

678-

if [[ "$credentials" == *",anthropic,"* && -z "${ANTHROPIC_API_TOKEN:-}" && -z "${ANTHROPIC_API_KEY:-}" ]]; then

679-

echo "ANTHROPIC_API_TOKEN or ANTHROPIC_API_KEY is required for selected Docker E2E lanes." >&2

680-

exit 1

681-

fi

598+

mode: targeted

599+

lanes: ${{ inputs.docker_lanes }}

600+

include-openwebui: ${{ inputs.include_openwebui }}

682601683602

- name: Run targeted Docker E2E lanes

684603

shell: bash

@@ -807,25 +726,13 @@ jobs:

807726808727

- name: Plan Docker E2E images

809728

id: plan

810-

shell: bash

811-

env:

812-

DOCKER_E2E_LANES: ${{ inputs.docker_lanes }}

813-

INCLUDE_RELEASE_PATH_SUITES: ${{ inputs.include_release_path_suites }}

814-

INCLUDE_OPENWEBUI: ${{ inputs.include_openwebui }}

815-

run: |

816-

set -euo pipefail

817-

mkdir -p .artifacts/docker-tests

818-

if [[ "${INCLUDE_RELEASE_PATH_SUITES}" == "true" ]]; then

819-

export OPENCLAW_DOCKER_ALL_PROFILE=release-path

820-

export OPENCLAW_DOCKER_ALL_PLAN_RELEASE_ALL=1

821-

elif [[ -n "${DOCKER_E2E_LANES}" ]]; then

822-

export OPENCLAW_DOCKER_ALL_LANES="${DOCKER_E2E_LANES}"

823-

elif [[ "${INCLUDE_OPENWEBUI}" == "true" ]]; then

824-

export OPENCLAW_DOCKER_ALL_LANES=openwebui

825-

fi

826-

export OPENCLAW_DOCKER_ALL_INCLUDE_OPENWEBUI="${INCLUDE_OPENWEBUI}"

827-

node scripts/test-docker-all.mjs --plan-json > .artifacts/docker-tests/plan.json

828-

node scripts/docker-e2e.mjs github-outputs .artifacts/docker-tests/plan.json >> "$GITHUB_OUTPUT"

729+

uses: ./.github/actions/docker-e2e-plan

730+

with:

731+

mode: prepare

732+

lanes: ${{ inputs.docker_lanes }}

733+

include-release-path-suites: ${{ inputs.include_release_path_suites }}

734+

include-openwebui: ${{ inputs.include_openwebui }}

735+

hydrate-artifacts: "false"

829736830737

- name: Setup Node environment

831738

if: steps.plan.outputs.needs_package == '1'