
























@@ -18,6 +18,27 @@ on:
1818description: Optional comma-separated Discord scenario ids
1919required: false
2020type: string
21+matrix_profile:
22+description: Matrix QA profile for the live Matrix lane
23+required: false
24+default: all
25+type: choice
26+options:
27+ - fast
28+ - all
29+ - transport
30+ - media
31+ - e2ee-smoke
32+ - e2ee-deep
33+ - e2ee-cli
34+matrix_shards:
35+description: Shard matrix_profile=all into parallel Matrix profile jobs
36+required: false
37+default: "false"
38+type: choice
39+options:
40+ - "false"
41+ - "true"
21422243permissions:
2344contents: read
@@ -199,6 +220,7 @@ jobs:
199220run_live_matrix:
200221name: Run Matrix live QA lane
201222needs: [authorize_actor, validate_selected_ref]
223+if: ${{ !(github.event_name == 'workflow_dispatch' && inputs.matrix_profile == 'all' && inputs.matrix_shards == 'true') }}
202224runs-on: blacksmith-32vcpu-ubuntu-2404
203225timeout-minutes: 60
204226environment: qa-live-shared
@@ -236,7 +258,9 @@ jobs:
236258shell: bash
237259env:
238260OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
261+INPUT_MATRIX_PROFILE: ${{ github.event_name == 'workflow_dispatch' && inputs.matrix_profile || 'fast' }}
239262OPENCLAW_QA_REDACT_PUBLIC_METADATA: "1"
263+OPENCLAW_QA_MATRIX_NO_REPLY_WINDOW_MS: "3000"
240264run: |
241265 set -euo pipefail
242266@@ -249,7 +273,9 @@ jobs:
249273 --provider-mode live-frontier \
250274 --model "${OPENCLAW_CI_OPENAI_MODEL}" \
251275 --alt-model "${OPENCLAW_CI_OPENAI_MODEL}" \
252- --fast
276+ --profile "${INPUT_MATRIX_PROFILE}" \
277+ --fast \
278+ --fail-fast
253279254280 - name: Upload Matrix QA artifacts
255281if: always()
@@ -260,6 +286,83 @@ jobs:
260286retention-days: 14
261287if-no-files-found: warn
262288289+run_live_matrix_sharded:
290+name: Run Matrix live QA lane (${{ matrix.profile }})
291+needs: [authorize_actor, validate_selected_ref]
292+if: ${{ github.event_name == 'workflow_dispatch' && inputs.matrix_profile == 'all' && inputs.matrix_shards == 'true' }}
293+runs-on: blacksmith-32vcpu-ubuntu-2404
294+timeout-minutes: 60
295+environment: qa-live-shared
296+strategy:
297+fail-fast: false
298+matrix:
299+profile:
300+ - transport
301+ - media
302+ - e2ee-smoke
303+ - e2ee-deep
304+ - e2ee-cli
305+steps:
306+ - name: Checkout selected ref
307+uses: actions/checkout@v6
308+with:
309+ref: ${{ needs.validate_selected_ref.outputs.selected_sha }}
310+fetch-depth: 1
311+312+ - name: Setup Node environment
313+uses: ./.github/actions/setup-node-env
314+with:
315+node-version: ${{ env.NODE_VERSION }}
316+pnpm-version: ${{ env.PNPM_VERSION }}
317+install-bun: "true"
318+319+ - name: Validate required QA credential env
320+env:
321+OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
322+shell: bash
323+run: |
324+ set -euo pipefail
325+326+ if [[ -z "${OPENAI_API_KEY:-}" ]]; then
327+ echo "Missing required OPENAI_API_KEY." >&2
328+ exit 1
329+ fi
330+331+ - name: Build private QA runtime
332+run: pnpm build
333+334+ - name: Run Matrix live lane shard
335+id: run_lane
336+shell: bash
337+env:
338+OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
339+OPENCLAW_QA_REDACT_PUBLIC_METADATA: "1"
340+OPENCLAW_QA_MATRIX_NO_REPLY_WINDOW_MS: "3000"
341+run: |
342+ set -euo pipefail
343+344+ output_dir=".artifacts/qa-e2e/matrix-live-${{ matrix.profile }}-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT}"
345+ echo "output_dir=${output_dir}" >> "$GITHUB_OUTPUT"
346+347+ pnpm openclaw qa matrix \
348+ --repo-root . \
349+ --output-dir "${output_dir}" \
350+ --provider-mode live-frontier \
351+ --model "${OPENCLAW_CI_OPENAI_MODEL}" \
352+ --alt-model "${OPENCLAW_CI_OPENAI_MODEL}" \
353+ --profile "${{ matrix.profile }}" \
354+ --fast \
355+ --fail-fast
356+357+ - name: Upload Matrix QA shard artifacts
358+if: always()
359+uses: actions/upload-artifact@v4
360+with:
361+name: qa-live-matrix-${{ matrix.profile }}-${{ github.run_id }}-${{ github.run_attempt }}
362+path: ${{ steps.run_lane.outputs.output_dir }}
363+retention-days: 14
364+if-no-files-found: warn
365+263366run_live_telegram:
264367name: Run Telegram live QA lane with Convex leases
265368needs: [authorize_actor, validate_selected_ref]
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。