




















@@ -210,10 +210,36 @@ jobs:
210210 fi
211211 } >> "$GITHUB_STEP_SUMMARY"
212212213+ docker_runtime_assets_preflight:
214+name: Verify Docker runtime-assets prune path
215+needs: [resolve_target]
216+if: inputs.rerun_group == 'all'
217+runs-on: ubuntu-24.04
218+timeout-minutes: 45
219+permissions:
220+contents: read
221+steps:
222+ - name: Checkout target SHA
223+uses: actions/checkout@v6
224+with:
225+ref: ${{ needs.resolve_target.outputs.sha }}
226+fetch-depth: 1
227+persist-credentials: false
228+229+ - name: Verify Docker runtime-assets prune path
230+env:
231+DOCKER_BUILDKIT: "1"
232+run: |
233+ set -euo pipefail
234+ timeout --foreground --kill-after=30s 35m docker build \
235+ --target runtime-assets \
236+ --build-arg OPENCLAW_EXTENSIONS="matrix" \
237+ .
238+213239 normal_ci:
214240name: Run normal full CI
215-needs: [resolve_target]
216-if: contains(fromJSON('["all","ci"]'), inputs.rerun_group)
241+needs: [resolve_target, docker_runtime_assets_preflight]
242+if: ${{ always() && contains(fromJSON('["all","ci"]'), inputs.rerun_group) && (inputs.rerun_group != 'all' || needs.docker_runtime_assets_preflight.result == 'success') }}
217243runs-on: ubuntu-24.04
218244timeout-minutes: ${{ inputs.release_profile != 'minimum' && 240 || 60 }}
219245outputs:
@@ -312,8 +338,8 @@ jobs:
312338313339 plugin_prerelease:
314340name: Run plugin prerelease validation
315-needs: [resolve_target]
316-if: contains(fromJSON('["all","plugin-prerelease"]'), inputs.rerun_group)
341+needs: [resolve_target, docker_runtime_assets_preflight]
342+if: ${{ always() && contains(fromJSON('["all","plugin-prerelease"]'), inputs.rerun_group) && (inputs.rerun_group != 'all' || needs.docker_runtime_assets_preflight.result == 'success') }}
317343runs-on: ubuntu-24.04
318344timeout-minutes: ${{ inputs.release_profile == 'full' && 300 || inputs.release_profile == 'stable' && 240 || 60 }}
319345outputs:
@@ -412,8 +438,8 @@ jobs:
412438413439 release_checks:
414440name: Run release/live/Docker/QA validation
415-needs: [resolve_target]
416-if: contains(fromJSON('["all","release-checks","install-smoke","cross-os","live-e2e","package","qa","qa-parity","qa-live"]'), inputs.rerun_group)
441+needs: [resolve_target, docker_runtime_assets_preflight]
442+if: ${{ always() && contains(fromJSON('["all","release-checks","install-smoke","cross-os","live-e2e","package","qa","qa-parity","qa-live"]'), inputs.rerun_group) && (inputs.rerun_group != 'all' || needs.docker_runtime_assets_preflight.result == 'success') }}
417443runs-on: ubuntu-24.04
418444timeout-minutes: ${{ inputs.release_profile != 'minimum' && 240 || 60 }}
419445outputs:
@@ -565,8 +591,8 @@ jobs:
565591566592 prepare_release_package:
567593name: Prepare release package artifact
568-needs: [resolve_target]
569-if: ${{ inputs.npm_telegram_package_spec == '' && inputs.release_package_spec == '' && inputs.rerun_group == 'all' && inputs.release_profile == 'full' }}
594+needs: [resolve_target, docker_runtime_assets_preflight]
595+if: ${{ always() && inputs.npm_telegram_package_spec == '' && inputs.release_package_spec == '' && inputs.rerun_group == 'all' && inputs.release_profile == 'full' && needs.docker_runtime_assets_preflight.result == 'success' }}
570596runs-on: ubuntu-24.04
571597timeout-minutes: 15
572598permissions:
@@ -735,7 +761,7 @@ jobs:
735761736762 summary:
737763name: Verify full validation
738-needs: [resolve_target, normal_ci, plugin_prerelease, release_checks, npm_telegram]
764+needs: [resolve_target, docker_runtime_assets_preflight, normal_ci, plugin_prerelease, release_checks, npm_telegram]
739765if: always()
740766runs-on: ubuntu-24.04
741767timeout-minutes: 5
@@ -751,6 +777,8 @@ jobs:
751777PLUGIN_PRERELEASE_RESULT: ${{ needs.plugin_prerelease.result }}
752778RELEASE_CHECKS_RESULT: ${{ needs.release_checks.result }}
753779NPM_TELEGRAM_RESULT: ${{ needs.npm_telegram.result }}
780+DOCKER_RUNTIME_ASSETS_PREFLIGHT_RESULT: ${{ needs.docker_runtime_assets_preflight.result }}
781+RERUN_GROUP: ${{ inputs.rerun_group }}
754782TARGET_SHA: ${{ needs.resolve_target.outputs.sha }}
755783CHILD_WORKFLOW_REF: ${{ github.ref_name }}
756784run: |
@@ -798,6 +826,7 @@ jobs:
798826 echo
799827 echo "| Child | Result | Minutes | Head SHA | Run |"
800828 echo "| --- | --- | ---: | --- | --- |"
829+ echo "| \`docker_runtime_assets_preflight\` | \`${DOCKER_RUNTIME_ASSETS_PREFLIGHT_RESULT}\` | | current workflow | |"
801830 } >> "$GITHUB_STEP_SUMMARY"
802831803832 append_child_row() {
@@ -933,23 +962,29 @@ jobs:
933962 }
934963935964 failed=0
965+ required_after_preflight=1
966+ if [[ "$RERUN_GROUP" == "all" && "$DOCKER_RUNTIME_ASSETS_PREFLIGHT_RESULT" != "success" ]]; then
967+ echo "::error::Docker runtime-assets preflight ended with ${DOCKER_RUNTIME_ASSETS_PREFLIGHT_RESULT}."
968+ failed=1
969+ required_after_preflight=0
970+ fi
936971937972 append_child_overview
938973939974 if [[ "$NORMAL_CI_RESULT" == "skipped" && -z "${NORMAL_CI_RUN_ID// }" ]]; then
940- check_child "normal_ci" "" 0 || failed=1
975+ check_child "normal_ci" "" "$required_after_preflight" || failed=1
941976 else
942977 check_child "normal_ci" "$NORMAL_CI_RUN_ID" 1 || failed=1
943978 fi
944979945980 if [[ "$PLUGIN_PRERELEASE_RESULT" == "skipped" && -z "${PLUGIN_PRERELEASE_RUN_ID// }" ]]; then
946- check_child "plugin_prerelease" "" 0 || failed=1
981+ check_child "plugin_prerelease" "" "$required_after_preflight" || failed=1
947982 else
948983 check_child "plugin_prerelease" "$PLUGIN_PRERELEASE_RUN_ID" 1 || failed=1
949984 fi
950985951986 if [[ "$RELEASE_CHECKS_RESULT" == "skipped" && -z "${RELEASE_CHECKS_RUN_ID// }" ]]; then
952- check_child "release_checks" "" 0 || failed=1
987+ check_child "release_checks" "" "$required_after_preflight" || failed=1
953988 else
954989 check_child "release_checks" "$RELEASE_CHECKS_RUN_ID" 1 || failed=1
955990 fi
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。