





















@@ -609,7 +609,6 @@ jobs:
609609requires_repo_e2e: true
610610requires_live_suites: false
611611env:
612-OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
613612OPENCLAW_E2E_WORKERS: "1"
614613OPENCLAW_VITEST_MAX_WORKERS: "1"
615614steps:
@@ -643,9 +642,74 @@ jobs:
643642 set -euo pipefail
644643 case "${{ matrix.suite_id }}" in
645644 openshell-e2e)
645+ echo "OPENCLAW_E2E_OPENSHELL_CONFIG_HOME=$HOME/.config" >> "$GITHUB_ENV"
646646 ;;
647647 esac
648648649+ - name: Install OpenShell CLI
650+if: |
651+ (inputs.live_suite_filter == '' || inputs.live_suite_filter == matrix.suite_id) &&
652+ matrix.suite_id == 'openshell-e2e'
653+ shell: bash
654+run: |
655+ set -euo pipefail
656+ export OPENSHELL_VERSION=v0.0.68
657+ curl -LsSf https://raw.githubusercontent.com/NVIDIA/OpenShell/d64542f69d06694cbd203b64929d286dd0533bbb/install.sh | sh
658+ openshell --version
659+660+ - name: Bootstrap OpenShell gateway
661+if: |
662+ (inputs.live_suite_filter == '' || inputs.live_suite_filter == matrix.suite_id) &&
663+ matrix.suite_id == 'openshell-e2e'
664+ shell: bash
665+run: |
666+ set -euo pipefail
667+ mtls_dir="$HOME/.config/openshell/gateways/openshell/mtls"
668+ gateway_tls_dir="$RUNNER_TEMP/openshell-gateway-certs"
669+ fallback_pid=""
670+ if ! openshell --gateway openshell sandbox list >/dev/null 2>&1; then
671+ rm -rf "$gateway_tls_dir"
672+ openshell-gateway generate-certs \
673+ --output-dir "$gateway_tls_dir" \
674+ --server-san 127.0.0.1 \
675+ --server-san localhost \
676+ --server-san host.openshell.internal
677+ rm -rf "$mtls_dir"
678+ mkdir -p "$mtls_dir"
679+ cp "$gateway_tls_dir/ca.crt" "$mtls_dir/ca.crt"
680+ cp "$gateway_tls_dir/client/tls.crt" "$mtls_dir/tls.crt"
681+ cp "$gateway_tls_dir/client/tls.key" "$mtls_dir/tls.key"
682+ openshell gateway remove openshell >/dev/null 2>&1 || true
683+ OPENSHELL_LOCAL_TLS_DIR="$gateway_tls_dir" nohup openshell-gateway \
684+ --bind-address 0.0.0.0 \
685+ --port 17670 \
686+ --drivers docker \
687+ --tls-cert "$gateway_tls_dir/server/tls.crt" \
688+ --tls-key "$gateway_tls_dir/server/tls.key" \
689+ --tls-client-ca "$mtls_dir/ca.crt" \
690+ >"$RUNNER_TEMP/openshell-gateway.log" 2>&1 &
691+ fallback_pid=$!
692+ echo "OPENCLAW_OPENSHELL_FALLBACK_PID=$fallback_pid" >> "$GITHUB_ENV"
693+ for _ in $(seq 1 30); do
694+ if openshell gateway add --local --name openshell https://127.0.0.1:17670; then
695+ break
696+ fi
697+ sleep 1
698+ done
699+ openshell gateway select openshell
700+ for _ in $(seq 1 60); do
701+ if openshell --gateway openshell sandbox list >/dev/null 2>&1; then
702+ break
703+ fi
704+ sleep 1
705+ done
706+ fi
707+ if [[ -z "$fallback_pid" ]]; then
708+ echo "OPENCLAW_OPENSHELL_FALLBACK_PID=" >> "$GITHUB_ENV"
709+ fi
710+ openshell --gateway openshell sandbox list >/dev/null
711+ openshell gateway list
712+649713 - name: Validate suite credentials
650714if: inputs.live_suite_filter == '' || inputs.live_suite_filter == matrix.suite_id
651715shell: bash
@@ -665,6 +729,15 @@ jobs:
665729 (inputs.live_suite_filter == '' || inputs.live_suite_filter == matrix.suite_id)
666730 run: ${{ matrix.command }}
667731732+ - name: Stop fallback OpenShell gateway
733+if: always() && matrix.suite_id == 'openshell-e2e'
734+shell: bash
735+run: |
736+ set -euo pipefail
737+ if [[ -n "${OPENCLAW_OPENSHELL_FALLBACK_PID:-}" ]]; then
738+ kill "$OPENCLAW_OPENSHELL_FALLBACK_PID" 2>/dev/null || true
739+ fi
740+668741 validate_docker_e2e:
669742needs: [validate_selected_ref, prepare_docker_e2e_image, plan_release_workflow_matrices]
670743if: inputs.include_release_path_suites && inputs.docker_lanes == '' && needs.plan_release_workflow_matrices.outputs.docker_e2e_count != '0'
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。