mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-07-09 16:00:59 +00:00
Retire v6 preview demo target after GA
This commit is contained in:
parent
72c8d9677a
commit
de0c5ff5c1
11 changed files with 93 additions and 166 deletions
|
|
@ -503,7 +503,6 @@ func TestDockerAndDemoBuildsUseCanonicalReleaseLdflags(t *testing.T) {
|
|||
workflowRequired := []string{
|
||||
`./scripts/release_ldflags.sh server --version "${VERSION}" --build-time "${BUILD_TIME}" --git-commit "${GIT_COMMIT}"`,
|
||||
`-buildvcs=false`,
|
||||
`demo-preview-v6`,
|
||||
`demo-stable`,
|
||||
`workflow_dispatch:`,
|
||||
`target:`,
|
||||
|
|
@ -513,6 +512,9 @@ func TestDockerAndDemoBuildsUseCanonicalReleaseLdflags(t *testing.T) {
|
|||
t.Fatalf("deploy-demo-server workflow missing canonical release ldflags usage: %s", needle)
|
||||
}
|
||||
}
|
||||
if strings.Contains(workflow, `preview-v6`) || strings.Contains(workflow, `demo-preview-v6`) {
|
||||
t.Fatal("deploy-demo-server workflow must not keep a separate v6 preview demo target after GA")
|
||||
}
|
||||
}
|
||||
|
||||
func TestAgentRuntimeImagePersistsAgentIdentityByDefault(t *testing.T) {
|
||||
|
|
|
|||
|
|
@ -410,9 +410,10 @@ class ReleasePromotionPolicyTest(unittest.TestCase):
|
|||
self.assertNotIn("docs/releases/RELEASE_NOTES_v6.md", demo_copy)
|
||||
self.assertNotIn("docs/releases/V6_RC_OPERATOR_SUPPORT_PACK.md", demo_copy)
|
||||
|
||||
def test_update_demo_server_workflow_uses_generic_tag_examples(self) -> None:
|
||||
def test_update_demo_server_workflow_uses_stable_tag_example(self) -> None:
|
||||
workflow = read(".github/workflows/update-demo-server.yml")
|
||||
self.assertIn("v6.0.0-rc.N or v6.0.0", workflow)
|
||||
self.assertIn("Stable release tag to deploy (e.g., v6.0.0)", workflow)
|
||||
self.assertIn("Prerelease demo updates are retired after v6 GA", workflow)
|
||||
self.assertNotIn("v6.0.0-rc.1", workflow)
|
||||
|
||||
def test_rehearsal_template_and_workflow_capture_ga_rehearsal_record(self) -> None:
|
||||
|
|
@ -701,14 +702,14 @@ class ReleasePromotionPolicyTest(unittest.TestCase):
|
|||
self.assertNotIn("provenance: false", publish)
|
||||
self.assertIn("control_plane.py --branch-for-version", promote)
|
||||
self.assertIn("control_plane.py --branch-for-version", demo)
|
||||
self.assertIn("preview-v6", demo)
|
||||
self.assertIn("demo-preview-v6", demo)
|
||||
self.assertIn("demo-stable", demo)
|
||||
self.assertIn("Refusing prerelease tag", demo)
|
||||
self.assertIn("Refusing stable tag", demo)
|
||||
self.assertIn("latest published release for target", demo)
|
||||
self.assertIn('SERVICE_NAME="pulse-v6-preview"', demo)
|
||||
self.assertIn("Preview demo updates must not target the stable pulse service.", demo)
|
||||
self.assertIn("Prerelease demo updates are retired after v6 GA", demo)
|
||||
self.assertIn("Latest published stable release", demo)
|
||||
self.assertNotIn("preview-v6", demo)
|
||||
self.assertNotIn("demo-preview-v6", demo)
|
||||
self.assertNotIn('SERVICE_NAME="pulse-v6-preview"', demo)
|
||||
self.assertNotIn("Preview demo updates must not target the stable pulse service.", demo)
|
||||
self.assertIn("tailscale/github-action@4e4c49acaa9818630ce0bd7a564372c17e33fb4d # v2", demo)
|
||||
self.assertIn("TS_AUTHKEY", demo)
|
||||
self.assertIn("DEMO_EXPECTED_HOSTNAME", demo)
|
||||
|
|
@ -724,8 +725,10 @@ class ReleasePromotionPolicyTest(unittest.TestCase):
|
|||
self.assertIn("extract_entry_asset()", demo)
|
||||
self.assertIn(r'<script\b[^>]*\bsrc=\"(/assets/index-[^\"]*\.js)\"', demo)
|
||||
self.assertIn("Public demo is serving $PUBLIC_ASSET but the target service is serving $REMOTE_ASSET.", demo)
|
||||
self.assertIn('SERVICE_NAME="pulse-v6-preview"', preview_deploy)
|
||||
self.assertIn("Preview demo deployments must not target the stable pulse service.", preview_deploy)
|
||||
self.assertNotIn("preview-v6", preview_deploy)
|
||||
self.assertNotIn("demo-preview-v6", preview_deploy)
|
||||
self.assertNotIn('SERVICE_NAME="pulse-v6-preview"', preview_deploy)
|
||||
self.assertNotIn("Preview demo deployments must not target the stable pulse service.", preview_deploy)
|
||||
self.assertIn("DEMO_EXPECTED_HOSTNAME", preview_deploy)
|
||||
self.assertIn("Verify target host identity", preview_deploy)
|
||||
self.assertIn("Demo environment points at host $REMOTE_HOSTNAME but expected $DEMO_EXPECTED_HOSTNAME.", preview_deploy)
|
||||
|
|
@ -762,9 +765,9 @@ class ReleasePromotionPolicyTest(unittest.TestCase):
|
|||
self.assertIn("helm status pulse || true", helm_pages)
|
||||
self.assertIn("kubectl describe pods -A || true", helm_pages)
|
||||
self.assertIn("kubectl get events -A --sort-by=.lastTimestamp || kubectl get events -A || true", helm_pages)
|
||||
self.assertIn('TARGET="preview-v6"', release_workflow)
|
||||
self.assertIn('TARGET="stable"', release_workflow)
|
||||
self.assertIn('gh workflow run update-demo-server.yml --ref "${REQUIRED_BRANCH}" -f tag="${{ needs.prepare.outputs.tag }}" -f target="${TARGET}"', release_workflow)
|
||||
self.assertIn("Prerelease public demo update skipped; post-GA demo target is stable only.", release_workflow)
|
||||
self.assertIn('gh workflow run update-demo-server.yml --ref "${REQUIRED_BRANCH}" -f tag="${{ needs.prepare.outputs.tag }}" -f target="stable"', release_workflow)
|
||||
self.assertNotIn('TARGET="preview-v6"', release_workflow)
|
||||
self.assertIn("sync_chart_release_metadata.py", helm)
|
||||
self.assertIn("sync_chart_release_metadata.py", helm_pages)
|
||||
self.assertIn("--chart deploy/helm/pulse/Chart.yaml", helm)
|
||||
|
|
@ -776,8 +779,9 @@ class ReleasePromotionPolicyTest(unittest.TestCase):
|
|||
self.assertIn("raw.githubusercontent.com/{repo}/{tag}/docs/images/pulse-logo.svg", chart_sync)
|
||||
self.assertIn("both stable and prerelease releases dispatch", runbook)
|
||||
self.assertIn("Release `6.0.0` from `pulse/v6-release`", runbook)
|
||||
self.assertIn("separate v6 preview demo environment", runbook)
|
||||
self.assertIn("preview-v6", runbook)
|
||||
self.assertIn("Prerelease public demo deployment is retired after v6 GA", runbook)
|
||||
self.assertNotIn("separate v6 preview demo environment", runbook)
|
||||
self.assertNotIn("preview-v6", runbook)
|
||||
self.assertIn(promotion_metadata_envelope(), normalize_ws(runbook))
|
||||
self.assertIn("waitUntil: 'domcontentloaded'", demo_smoke)
|
||||
self.assertIn("getByLabel('Username').waitFor({ state: 'visible', timeout: 120000 })", demo_smoke)
|
||||
|
|
|
|||
|
|
@ -152,14 +152,14 @@ class SubsystemLookupTest(unittest.TestCase):
|
|||
self.assertEqual(match["verification_requirement"]["id"], "mobile-relay-runtime")
|
||||
|
||||
def test_lookup_paths_normalizes_workspace_relative_cross_repo_runtime_paths(self) -> None:
|
||||
result = lookup_paths(["repos/pulse-pro/scripts/bootstrap-v6-demo-preview.sh"])
|
||||
result = lookup_paths(["repos/pulse-pro/scripts/grandfathered_recurring_cutover_preview.py"])
|
||||
self.assertEqual(result["unowned_runtime_files"], [])
|
||||
self.assertEqual(
|
||||
{item["subsystem"] for item in result["impacted_subsystems"]},
|
||||
{"cloud-paid"},
|
||||
)
|
||||
file_entry = result["files"][0]
|
||||
self.assertEqual(file_entry["path"], "pulse-pro:scripts/bootstrap-v6-demo-preview.sh")
|
||||
self.assertEqual(file_entry["path"], "pulse-pro:scripts/grandfathered_recurring_cutover_preview.py")
|
||||
self.assertEqual(file_entry["classification"], "runtime")
|
||||
self.assertEqual(
|
||||
{match["subsystem"] for match in file_entry["matches"]},
|
||||
|
|
@ -169,7 +169,7 @@ class SubsystemLookupTest(unittest.TestCase):
|
|||
self.assertEqual(match["lane_context"]["lane_id"], "L3")
|
||||
self.assertEqual(
|
||||
match["verification_requirement"]["id"],
|
||||
"public-demo-preview-operations",
|
||||
"legacy-grandfathering-cutover",
|
||||
)
|
||||
|
||||
def test_lookup_paths_assigns_shared_tag_badges_to_frontend_primitives(self) -> None:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue