
























@@ -480,6 +480,35 @@ jobs:
480480 fi
481481 exit 1
482482483+ plan_release_workflow_matrices:
484+needs: validate_selected_ref
485+runs-on: ubuntu-24.04
486+outputs:
487+docker_e2e_count: ${{ steps.plan.outputs.docker_e2e_count }}
488+docker_e2e_matrix: ${{ steps.plan.outputs.docker_e2e_matrix }}
489+docker_e2e_omitted_json: ${{ steps.plan.outputs.docker_e2e_omitted_json }}
490+live_models_count: ${{ steps.plan.outputs.live_models_count }}
491+live_models_matrix: ${{ steps.plan.outputs.live_models_matrix }}
492+live_models_omitted_json: ${{ steps.plan.outputs.live_models_omitted_json }}
493+steps:
494+ - name: Checkout trusted release harness
495+uses: actions/checkout@v6
496+with:
497+persist-credentials: false
498+ref: ${{ github.sha }}
499+fetch-depth: 1
500+501+ - name: Plan release workflow matrices
502+id: plan
503+env:
504+DOCKER_LANES: ${{ inputs.docker_lanes }}
505+INCLUDE_LIVE_SUITES: ${{ inputs.include_live_suites }}
506+INCLUDE_RELEASE_PATH_SUITES: ${{ inputs.include_release_path_suites }}
507+LIVE_MODEL_PROVIDERS: ${{ inputs.live_model_providers }}
508+LIVE_SUITE_FILTER: ${{ inputs.live_suite_filter }}
509+RELEASE_TEST_PROFILE: ${{ inputs.release_test_profile }}
510+run: node scripts/plan-release-workflow-matrix.mjs >> "$GITHUB_OUTPUT"
511+483512validate_release_live_cache:
484513needs: validate_selected_ref
485514if: inputs.include_live_suites && !inputs.live_models_only && (inputs.live_suite_filter == '' || inputs.live_suite_filter == 'live-cache')
@@ -636,72 +665,15 @@ jobs:
636665 run: ${{ matrix.command }}
637666638667validate_docker_e2e:
639-needs: [validate_selected_ref, prepare_docker_e2e_image]
640-if: inputs.include_release_path_suites && inputs.docker_lanes == ''
668+needs: [validate_selected_ref, prepare_docker_e2e_image, plan_release_workflow_matrices]
669+if: inputs.include_release_path_suites && inputs.docker_lanes == '' && needs.plan_release_workflow_matrices.outputs.docker_e2e_count != '0'
641670name: Docker E2E (${{ matrix.label }})
642671continue-on-error: ${{ inputs.advisory }}
643672runs-on: ${{ inputs.use_github_hosted_runners && 'ubuntu-24.04' || 'blacksmith-32vcpu-ubuntu-2404' }}
644673timeout-minutes: ${{ matrix.timeout_minutes }}
645674strategy:
646675fail-fast: false
647-matrix:
648-include:
649- - chunk_id: core
650-label: core
651-timeout_minutes: 60
652-profiles: stable full
653- - chunk_id: package-update-openai
654-label: package/update OpenAI install
655-timeout_minutes: 45
656-profiles: beta minimum stable full
657- - chunk_id: package-update-anthropic
658-label: package/update Anthropic install
659-timeout_minutes: 60
660-profiles: beta minimum stable full
661- - chunk_id: package-update-core
662-label: package/update core
663-timeout_minutes: 60
664-profiles: beta minimum stable full
665- - chunk_id: plugins-runtime-plugins
666-label: plugins/runtime plugins
667-timeout_minutes: 60
668-profiles: stable full
669- - chunk_id: plugins-runtime-services
670-label: plugins/runtime services
671-timeout_minutes: 60
672-profiles: stable full
673- - chunk_id: plugins-runtime-install-a
674-label: plugins/runtime install A
675-timeout_minutes: 60
676-profiles: stable full
677- - chunk_id: plugins-runtime-install-b
678-label: plugins/runtime install B
679-timeout_minutes: 60
680-profiles: stable full
681- - chunk_id: plugins-runtime-install-c
682-label: plugins/runtime install C
683-timeout_minutes: 60
684-profiles: stable full
685- - chunk_id: plugins-runtime-install-d
686-label: plugins/runtime install D
687-timeout_minutes: 60
688-profiles: stable full
689- - chunk_id: plugins-runtime-install-e
690-label: plugins/runtime install E
691-timeout_minutes: 60
692-profiles: stable full
693- - chunk_id: plugins-runtime-install-f
694-label: plugins/runtime install F
695-timeout_minutes: 60
696-profiles: stable full
697- - chunk_id: plugins-runtime-install-g
698-label: plugins/runtime install G
699-timeout_minutes: 60
700-profiles: stable full
701- - chunk_id: plugins-runtime-install-h
702-label: plugins/runtime install H
703-timeout_minutes: 60
704-profiles: stable full
676+matrix: ${{ fromJson(needs.plan_release_workflow_matrices.outputs.docker_e2e_matrix) }}
705677env:
706678OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
707679OPENAI_BASE_URL: ${{ secrets.OPENAI_BASE_URL }}
@@ -1631,42 +1603,14 @@ jobs:
1631160316321604validate_live_models_docker:
16331605name: Docker live models (${{ matrix.provider_label }})
1634-needs: [validate_selected_ref, prepare_live_test_image]
1635-if: inputs.include_live_suites && inputs.live_model_providers == '' && (inputs.live_suite_filter == '' || inputs.live_suite_filter == 'docker-live-models')
1606+needs: [validate_selected_ref, prepare_live_test_image, plan_release_workflow_matrices]
1607+if: inputs.include_live_suites && inputs.live_model_providers == '' && (inputs.live_suite_filter == '' || inputs.live_suite_filter == 'docker-live-models') && needs.plan_release_workflow_matrices.outputs.live_models_count != '0'
16361608continue-on-error: ${{ inputs.advisory }}
16371609runs-on: ${{ inputs.use_github_hosted_runners && 'ubuntu-24.04' || 'blacksmith-32vcpu-ubuntu-2404' }}
16381610timeout-minutes: 45
16391611strategy:
16401612fail-fast: false
1641-matrix:
1642-include:
1643- - provider_label: Anthropic
1644-providers: anthropic
1645-profiles: stable full
1646- - provider_label: Google
1647-providers: google
1648-profiles: stable full
1649- - provider_label: MiniMax
1650-providers: minimax
1651-profiles: stable full
1652- - provider_label: OpenAI
1653-providers: openai
1654-profiles: beta minimum stable full
1655- - provider_label: OpenCode
1656-providers: opencode-go
1657-profiles: full
1658- - provider_label: OpenRouter
1659-providers: openrouter
1660-profiles: full
1661- - provider_label: xAI
1662-providers: xai
1663-profiles: full
1664- - provider_label: Z.ai
1665-providers: zai
1666-profiles: full
1667- - provider_label: Fireworks
1668-providers: fireworks
1669-profiles: full
1613+matrix: ${{ fromJson(needs.plan_release_workflow_matrices.outputs.live_models_matrix) }}
16701614env:
16711615OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
16721616OPENAI_BASE_URL: ${{ secrets.OPENAI_BASE_URL }}
@@ -1744,6 +1688,8 @@ jobs:
17441688 - name: Validate provider credential
17451689if: contains(matrix.profiles, inputs.release_test_profile)
17461690shell: bash
1691+env:
1692+LIVE_MODEL_PROVIDERS: ${{ matrix.providers }}
17471693run: |
17481694 set -euo pipefail
17491695@@ -1760,7 +1706,7 @@ jobs:
17601706 exit 1
17611707 }
176217081763- case "${{ matrix.providers }}" in
1709+ case "${LIVE_MODEL_PROVIDERS}" in
17641710 anthropic) require_any Anthropic ANTHROPIC_API_KEY ANTHROPIC_API_KEY_OLD ANTHROPIC_API_TOKEN ;;
17651711 google) require_any Google GEMINI_API_KEY GOOGLE_API_KEY ;;
17661712 minimax) require_any MiniMax MINIMAX_API_KEY ;;
@@ -1771,7 +1717,7 @@ jobs:
17711717 zai) require_any Z.ai ZAI_API_KEY Z_AI_API_KEY ;;
17721718 fireworks) require_any Fireworks FIREWORKS_API_KEY ;;
17731719 *)
1774- echo "Unhandled live model provider shard: ${{ matrix.providers }}" >&2
1720+ echo "Unhandled live model provider shard: ${LIVE_MODEL_PROVIDERS}" >&2
17751721 exit 1
17761722 ;;
17771723 esac
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。