























@@ -466,54 +466,13 @@ jobs:
466466 - name: Hydrate live auth/profile inputs
467467run: bash scripts/ci-hydrate-live-auth.sh
468468469- - name: Plan Docker E2E chunk
469+ - name: Plan and hydrate Docker E2E chunk
470470id: 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
484472with:
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
519478shell: bash
@@ -632,53 +591,13 @@ jobs:
632591 - name: Hydrate live auth/profile inputs
633592run: bash scripts/ci-hydrate-live-auth.sh
634593635- - name: Plan targeted Docker E2E lanes
594+ - name: Plan and hydrate targeted Docker E2E lanes
636595id: 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
649597with:
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
684603shell: bash
@@ -807,25 +726,13 @@ jobs:
807726808727 - name: Plan Docker E2E images
809728id: 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
831738if: steps.plan.outputs.needs_package == '1'
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。