6969 required : false
7070 default : openclaw@latest
7171 type : string
72+ published_upgrade_survivor_baselines :
73+ description : Optional baseline list for published-upgrade-survivor; use release-history for last 6 plus key legacy releases
74+ required : false
75+ default : " "
76+ type : string
77+ published_upgrade_survivor_scenarios :
78+ description : Optional scenario list for published-upgrade-survivor; use reported-issues for known upgrade failure shapes
79+ required : false
80+ default : " "
81+ type : string
7282 telegram_mode :
7383 description : Optional Telegram QA lane for the resolved package candidate
7484 required : true
139149 required : false
140150 default : openclaw@latest
141151 type : string
152+ published_upgrade_survivor_baselines :
153+ description : Optional baseline list for published-upgrade-survivor; use release-history for last 6 plus key legacy releases
154+ required : false
155+ default : " "
156+ type : string
157+ published_upgrade_survivor_scenarios :
158+ description : Optional scenario list for published-upgrade-survivor; use reported-issues for known upgrade failure shapes
159+ required : false
160+ default : " "
161+ type : string
142162 telegram_mode :
143163 description : Optional Telegram QA lane for the resolved package candidate
144164 required : false
@@ -275,6 +295,8 @@ jobs:
275295 package_source_sha : ${{ steps.resolve.outputs.package_source_sha }}
276296 package_sha256 : ${{ steps.resolve.outputs.sha256 }}
277297 package_version : ${{ steps.resolve.outputs.package_version }}
298+ published_upgrade_survivor_baselines : ${{ steps.upgrade_survivor_baselines.outputs.baselines }}
299+ published_upgrade_survivor_scenarios : ${{ inputs.published_upgrade_survivor_scenarios }}
278300 telegram_enabled : ${{ steps.profile.outputs.telegram_enabled }}
279301 telegram_mode : ${{ steps.profile.outputs.telegram_mode }}
280302 steps :
@@ -405,6 +427,44 @@ jobs:
405427 echo "package_artifact_name=${PACKAGE_ARTIFACT_NAME}"
406428 } >> "$GITHUB_OUTPUT"
407429
430+ - name : Resolve published upgrade survivor baselines
431+ id : upgrade_survivor_baselines
432+ env :
433+ FALLBACK_BASELINE : ${{ inputs.published_upgrade_survivor_baseline }}
434+ REQUESTED_BASELINES : ${{ inputs.published_upgrade_survivor_baselines }}
435+ GH_TOKEN : ${{ github.token }}
436+ shell : bash
437+ run : |
438+ set -euo pipefail
439+ if [[ -z "${REQUESTED_BASELINES// }" ]]; then
440+ echo "baselines=" >> "$GITHUB_OUTPUT"
441+ exit 0
442+ fi
443+ releases_json=""
444+ npm_versions_json=""
445+ if [[ "$REQUESTED_BASELINES" == *"release-history"* ]]; then
446+ releases_json=".artifacts/package-candidate-input/openclaw-releases.json"
447+ npm_versions_json=".artifacts/package-candidate-input/openclaw-npm-versions.json"
448+ mkdir -p "$(dirname "$releases_json")"
449+ gh release list --repo "$GITHUB_REPOSITORY" --limit 100 --json tagName,publishedAt,isPrerelease > "$releases_json"
450+ npm view openclaw versions --json > "$npm_versions_json"
451+ fi
452+ args=(
453+ --requested "$REQUESTED_BASELINES"
454+ --fallback "$FALLBACK_BASELINE"
455+ --github-output "$GITHUB_OUTPUT"
456+ )
457+ if [[ -n "$releases_json" ]]; then
458+ args+=(
459+ --releases-json "$releases_json"
460+ --npm-versions-json "$npm_versions_json"
461+ --history-count 6
462+ --include-version 2026.4.23
463+ --pre-date 2026-03-15T00:00:00Z
464+ )
465+ fi
466+ node scripts/resolve-upgrade-survivor-baselines.mjs "${args[@]}" >/dev/null
467+
408468 - name : Upload package-under-test artifact
409469 uses : actions/upload-artifact@v7
410470 with :
@@ -424,6 +484,8 @@ jobs:
424484 SUITE_PROFILE : ${{ inputs.suite_profile }}
425485 WORKFLOW_REF : ${{ inputs.workflow_ref }}
426486 PUBLISHED_UPGRADE_SURVIVOR_BASELINE : ${{ inputs.published_upgrade_survivor_baseline }}
487+ PUBLISHED_UPGRADE_SURVIVOR_BASELINES : ${{ steps.upgrade_survivor_baselines.outputs.baselines }}
488+ PUBLISHED_UPGRADE_SURVIVOR_SCENARIOS : ${{ inputs.published_upgrade_survivor_scenarios }}
427489 shell : bash
428490 run : |
429491 {
@@ -438,6 +500,8 @@ jobs:
438500 echo "- SHA-256: \`${PACKAGE_SHA256}\`"
439501 echo "- Profile: \`${SUITE_PROFILE}\`"
440502 echo "- Published upgrade survivor baseline: \`${PUBLISHED_UPGRADE_SURVIVOR_BASELINE}\`"
503+ echo "- Published upgrade survivor baselines: \`${PUBLISHED_UPGRADE_SURVIVOR_BASELINES}\`"
504+ echo "- Published upgrade survivor scenarios: \`${PUBLISHED_UPGRADE_SURVIVOR_SCENARIOS}\`"
441505 } >> "$GITHUB_STEP_SUMMARY"
442506
443507 docker_acceptance :
@@ -451,6 +515,8 @@ jobs:
451515 include_openwebui : ${{ needs.resolve_package.outputs.include_openwebui == 'true' }}
452516 docker_lanes : ${{ needs.resolve_package.outputs.docker_lanes }}
453517 published_upgrade_survivor_baseline : ${{ inputs.published_upgrade_survivor_baseline }}
518+ published_upgrade_survivor_baselines : ${{ needs.resolve_package.outputs.published_upgrade_survivor_baselines }}
519+ published_upgrade_survivor_scenarios : ${{ needs.resolve_package.outputs.published_upgrade_survivor_scenarios }}
454520 package_artifact_name : ${{ needs.resolve_package.outputs.package_artifact_name }}
455521 include_live_suites : ${{ needs.resolve_package.outputs.include_live_suites == 'true' }}
456522 live_models_only : false
0 commit comments