mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-10-19 10:33:29 +00:00
Accept qualified recovered release activation
This commit is contained in:
parent
7324867556
commit
94ccf96bad
5 changed files with 151 additions and 3 deletions
|
|
@ -2684,6 +2684,11 @@ func TestReleasePipelinePromotesOneImmutableCandidate(t *testing.T) {
|
|||
for _, needle := range []string{
|
||||
`release-activation.json`,
|
||||
`require_viable_convergence_owner`,
|
||||
`validate_existing_activation_commit`,
|
||||
`Recover release activation ${TAG} source ${GITHUB_RUN_ID}`,
|
||||
`.path == ".github/workflows/recover-release-activation.yml"`,
|
||||
`.path == ".github/workflows/release-convergence.yml"`,
|
||||
`.status == "completed" and .conclusion == "success"`,
|
||||
`continue-on-error: true`,
|
||||
`Resuming quarantined activation for ${TAG}`,
|
||||
`[ "$activation_committed" = "true" ] ||`,
|
||||
|
|
@ -2696,6 +2701,10 @@ func TestReleasePipelinePromotesOneImmutableCandidate(t *testing.T) {
|
|||
if strings.Contains(activationJob, `[ -n "$published_at" ] ||`) {
|
||||
t.Fatal("release activation must allow retrying a current draft when GitHub retains historical published_at metadata")
|
||||
}
|
||||
if strings.Contains(activationJob, `--clobber`) &&
|
||||
!strings.Contains(activationJob, `already committed by successful recovery run`) {
|
||||
t.Fatal("release activation reruns must recognize a qualified recovery before considering marker replacement")
|
||||
}
|
||||
if !strings.Contains(createJob, `Resuming quarantined draft for ${TAG}`) ||
|
||||
!strings.Contains(createJob, `Resuming quarantined draft release for ${TAG}`) {
|
||||
t.Fatal("release creation must explicitly support resuming a quarantined draft")
|
||||
|
|
|
|||
|
|
@ -25,7 +25,19 @@ class DevRuntimeGovernanceTest(unittest.TestCase):
|
|||
{match["subsystem"] for match in file_entry["matches"]},
|
||||
{"deployment-installability"},
|
||||
)
|
||||
match = file_entry["matches"][0]
|
||||
self.assertEqual(
|
||||
{
|
||||
match["verification_requirement"]["id"]
|
||||
for match in file_entry["matches"]
|
||||
},
|
||||
{"dev-runtime-orchestration", "frontend-build-output"},
|
||||
)
|
||||
match = next(
|
||||
match
|
||||
for match in file_entry["matches"]
|
||||
if match["verification_requirement"]["id"]
|
||||
== "dev-runtime-orchestration"
|
||||
)
|
||||
self.assertEqual(
|
||||
match["contract"],
|
||||
"docs/release-control/v6/internal/subsystems/deployment-installability.md",
|
||||
|
|
|
|||
|
|
@ -737,6 +737,22 @@ class ReleasePromotionPolicyTest(unittest.TestCase):
|
|||
self.assertIn('expected_title="Release convergence ${TAG} source ${GITHUB_RUN_ID}"', activation)
|
||||
self.assertIn('[ "${owner_status}" = "completed" ]', activation)
|
||||
self.assertIn("immediately before the marker", activation)
|
||||
self.assertIn("validate_existing_activation_commit", activation)
|
||||
self.assertIn(
|
||||
"Recover release activation ${TAG} source ${GITHUB_RUN_ID}", activation
|
||||
)
|
||||
self.assertIn(
|
||||
'.path == ".github/workflows/recover-release-activation.yml"',
|
||||
activation,
|
||||
)
|
||||
self.assertIn(
|
||||
'.path == ".github/workflows/release-convergence.yml"', activation
|
||||
)
|
||||
verdict = workflow_job_block(release_workflow, "release_commit_verdict")
|
||||
self.assertIn("activation_recovery_run_id", verdict)
|
||||
self.assertIn(
|
||||
'.status == "completed" and .conclusion == "success"', verdict
|
||||
)
|
||||
self.assertLess(
|
||||
activation.index("require_viable_convergence_owner\n gh api"),
|
||||
activation.index("-X PATCH --input \"$publish_payload\""),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue