



















@@ -390,6 +390,8 @@ jobs:
390390391391 - name: Require preflight artifact promotion on real publish
392392env:
393+RELEASE_TAG: ${{ inputs.tag }}
394+RELEASE_NPM_DIST_TAG: ${{ inputs.npm_dist_tag }}
393395PREFLIGHT_RUN_ID: ${{ inputs.preflight_run_id }}
394396FULL_RELEASE_VALIDATION_RUN_ID: ${{ inputs.full_release_validation_run_id }}
395397RELEASE_PUBLISH_RUN_ID: ${{ inputs.release_publish_run_id }}
@@ -400,8 +402,12 @@ jobs:
400402 exit 1
401403 fi
402404 if [[ -z "${FULL_RELEASE_VALIDATION_RUN_ID}" ]]; then
403- echo "Real publish requires full_release_validation_run_id from a successful Full Release Validation run." >&2
404- exit 1
405+ if [[ "${RELEASE_TAG}" == *"-beta."* && "${RELEASE_NPM_DIST_TAG}" == "beta" ]]; then
406+ echo "::warning::Beta publish is proceeding from npm preflight only; full release validation remains required before stable/latest promotion."
407+ else
408+ echo "Real publish requires full_release_validation_run_id from a successful Full Release Validation run." >&2
409+ exit 1
410+ fi
405411 fi
406412 if [[ -z "${RELEASE_PUBLISH_RUN_ID// }" && "${GITHUB_ACTOR}" == "github-actions[bot]" ]]; then
407413 echo "Workflow-dispatched real publish requires release_publish_run_id from the approved OpenClaw Release Publish workflow." >&2
@@ -518,6 +524,7 @@ jobs:
518524 printf '%s' "$RUN_JSON" | node -e 'const fs = require("node:fs"); const run = JSON.parse(fs.readFileSync(0, "utf8")); const checks = [["workflowName", "OpenClaw NPM Release"], ["headBranch", process.env.EXPECTED_PREFLIGHT_BRANCH], ["event", "workflow_dispatch"], ["conclusion", "success"]]; for (const [key, expected] of checks) { if (run[key] !== expected) { console.error(`Referenced npm preflight run ${process.env.PREFLIGHT_RUN_ID} must have ${key}=${expected}, got ${run[key] ?? "<missing>"}.`); process.exit(1); } } console.log(`Using npm preflight run ${process.env.PREFLIGHT_RUN_ID}: ${run.url}`);'
519525520526 - name: Verify full release validation run metadata
527+if: ${{ inputs.full_release_validation_run_id != '' }}
521528env:
522529GH_TOKEN: ${{ github.token }}
523530FULL_RELEASE_VALIDATION_RUN_ID: ${{ inputs.full_release_validation_run_id }}
@@ -581,6 +588,7 @@ jobs:
581588 download_preflight_artifact
582589583590 - name: Download full release validation manifest
591+if: ${{ inputs.full_release_validation_run_id != '' }}
584592uses: actions/download-artifact@v8
585593with:
586594name: full-release-validation-${{ inputs.full_release_validation_run_id }}
@@ -646,6 +654,7 @@ jobs:
646654 fi
647655648656 - name: Verify full release validation target
657+if: ${{ inputs.full_release_validation_run_id != '' }}
649658run: |
650659 set -euo pipefail
651660 EXPECTED_RELEASE_SHA="$(git rev-parse HEAD)"
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。