From f34ec16138460b2b70ee45f7444a0830ff990651 Mon Sep 17 00:00:00 2001 From: rcourtman Date: Thu, 26 Mar 2026 13:03:24 +0000 Subject: [PATCH] fix(release): require explicit rollback targets in workflows --- .github/workflows/create-release.yml | 2 +- .github/workflows/release-dry-run.yml | 4 ++-- scripts/release_control/release_promotion_policy_test.py | 6 ++++++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 0fd729149..b02e71b11 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -18,7 +18,7 @@ on: type: string rollback_version: description: 'Required: prior stable version to pin for rollback (for example 5.1.14 or v5.1.14)' - required: false + required: true type: string ga_date: description: 'First stable v6.0.0 GA only: exact GA publish date (YYYY-MM-DD)' diff --git a/.github/workflows/release-dry-run.yml b/.github/workflows/release-dry-run.yml index ce4c4eafd..932da442e 100644 --- a/.github/workflows/release-dry-run.yml +++ b/.github/workflows/release-dry-run.yml @@ -12,8 +12,8 @@ on: required: false type: string rollback_version: - description: 'Optional rollback stable version to rehearse (for example 5.1.14 or v5.1.14)' - required: false + description: 'Required rollback stable version to rehearse (for example 5.1.14 or v5.1.14)' + required: true type: string ga_date: description: 'Stable v6.0.0 rehearsal only: planned GA publish date (YYYY-MM-DD)' diff --git a/scripts/release_control/release_promotion_policy_test.py b/scripts/release_control/release_promotion_policy_test.py index 99a4b7727..0bc578ea8 100644 --- a/scripts/release_control/release_promotion_policy_test.py +++ b/scripts/release_control/release_promotion_policy_test.py @@ -185,6 +185,12 @@ class ReleasePromotionPolicyTest(unittest.TestCase): self.assertIn("Planned v5 end-of-support date", content) self.assertIn("Stable v6.0.0 requires v5_eos_date in YYYY-MM-DD form", resolver) self.assertIn("release_notes must include the Pulse v5 maintenance-only support notice", resolver) + dry_run_workflow = read(".github/workflows/release-dry-run.yml") + self.assertIn("Required rollback stable version to rehearse", dry_run_workflow) + self.assertIn("rollback_version:\n description: 'Required rollback stable version to rehearse", dry_run_workflow) + self.assertIn("required: true", dry_run_workflow) + self.assertIn("Required: prior stable version to pin for rollback", content) + self.assertIn("rollback_version:\n description: 'Required: prior stable version to pin for rollback", content) self.assertIn("check-workflow-dispatch-inputs.py", helper) self.assertIn('--branch "$CURRENT_BRANCH"', helper) self.assertIn('--ref "$CURRENT_BRANCH"', helper)