mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-10-19 10:33:29 +00:00
Derive the rollback target for scheduled release rehearsals
The weekly release-dry-run schedule failed at 'Resolve rehearsal metadata' because GitHub does not apply workflow_dispatch input defaults to schedule events, so rollback_version arrived empty and resolve_release_promotion.py rejected the run. Scheduled runs now pass --derive-rollback-latest-stable, which fills an empty rollback_version with the latest stable tag preceding the rehearsal version (currently v6.0.4 for 6.0.5-rc.3). Manual dispatches keep the explicit rollback_version requirement; the stale prefilled 5.1.29 default is removed so operators state the target themselves. The deployment-installability contract records the scoped scheduled exception.
This commit is contained in:
parent
0d787a4b1f
commit
7645965afe
5 changed files with 156 additions and 7 deletions
23
.github/workflows/release-dry-run.yml
vendored
23
.github/workflows/release-dry-run.yml
vendored
|
|
@ -1,11 +1,13 @@
|
|||
name: Release Dry Run
|
||||
|
||||
on:
|
||||
# Weekly drift watchdog: fires every Tuesday 07:00 UTC against pulse/v6-release
|
||||
# so fixture, manifest, and load-calibration drift surfaces a week at a time
|
||||
# instead of piling up until an RC publish. Scheduled runs use the input
|
||||
# defaults below. Update rollback_version once v6 GA ships and a different
|
||||
# stable line becomes the rollback target.
|
||||
# Weekly drift watchdog: fires every Tuesday 07:00 UTC against the governed
|
||||
# release branch so fixture, manifest, and load-calibration drift surfaces a
|
||||
# week at a time instead of piling up until an RC publish. Scheduled runs
|
||||
# carry no workflow_dispatch inputs (GitHub does not apply input defaults to
|
||||
# schedule events), so the rehearsal step derives the rollback target as the
|
||||
# latest stable tag preceding VERSION. Manual dispatches must still supply
|
||||
# rollback_version explicitly.
|
||||
schedule:
|
||||
- cron: '0 7 * * 2'
|
||||
workflow_dispatch:
|
||||
|
|
@ -19,10 +21,9 @@ on:
|
|||
required: false
|
||||
type: string
|
||||
rollback_version:
|
||||
description: 'Required rollback stable version to rehearse (for example 5.1.14 or v5.1.14)'
|
||||
description: 'Required rollback stable version to rehearse (for example 6.0.4 or v6.0.4)'
|
||||
required: true
|
||||
type: string
|
||||
default: '5.1.29'
|
||||
ga_date:
|
||||
description: 'Stable v6.0.0 rehearsal only: planned GA publish date (YYYY-MM-DD)'
|
||||
required: false
|
||||
|
|
@ -107,6 +108,7 @@ jobs:
|
|||
- name: Resolve rehearsal metadata
|
||||
id: rehearsal
|
||||
env:
|
||||
EVENT_NAME: ${{ github.event_name }}
|
||||
VERSION_INPUT: ${{ inputs.version }}
|
||||
PROMOTED_FROM_TAG_INPUT: ${{ inputs.promoted_from_tag }}
|
||||
ROLLBACK_VERSION_INPUT: ${{ inputs.rollback_version }}
|
||||
|
|
@ -154,6 +156,13 @@ jobs:
|
|||
if [ "${HOTFIX_EXCEPTION_INPUT:-false}" = "true" ]; then
|
||||
HELPER_ARGS+=(--hotfix-exception)
|
||||
fi
|
||||
if [ "${EVENT_NAME}" = "schedule" ] && [ -z "${ROLLBACK_VERSION_INPUT:-}" ]; then
|
||||
# Scheduled watchdog runs carry no dispatch inputs; derive the
|
||||
# rollback target instead of failing. Manual dispatches never get
|
||||
# this flag, so their explicit-rollback requirement stands.
|
||||
HELPER_ARGS+=(--derive-rollback-latest-stable)
|
||||
echo "[OK] Scheduled rehearsal: deriving rollback target from the latest preceding stable tag"
|
||||
fi
|
||||
|
||||
python3 scripts/release_control/resolve_release_promotion.py \
|
||||
"${HELPER_ARGS[@]}" > "$RUNNER_TEMP/rehearsal-metadata.out"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue