diff --git a/dev-tools/unittest/test_wait_version_bump_dra.py b/dev-tools/unittest/test_wait_version_bump_dra.py index 63b1311ac..bf058cada 100644 --- a/dev-tools/unittest/test_wait_version_bump_dra.py +++ b/dev-tools/unittest/test_wait_version_bump_dra.py @@ -74,6 +74,27 @@ def meta_side_effect(key: str) -> str | None: assert "still waiting: staging=None, snapshot=None" in out +def test_wait_minor_polls_master_alias_for_main_snapshot() -> None: + """release-manager's project-configs dir for main is "master", not "main"; the DRA + "latest" snapshot alias it publishes is .../latest/master.json. _wait_minor must poll + that alias, not a .../latest/main.json that release-manager never creates.""" + mod = _load_wait_module() + captured: list[tuple[str, str, str]] = [] + + def fake_wait_for_checks(checks: list[tuple[str, str, str]]) -> int: + captured.extend(checks) + return 0 + + with patch.object(mod, "_wait_for_checks", side_effect=fake_wait_for_checks): + assert mod._wait_minor("9.5", "9.5.0", "9.6.0") == 0 + + main_snapshot = next(c for c in captured if c[0] == "main snapshot") + _, url, expected = main_snapshot + assert url == "https://storage.googleapis.com/elastic-artifacts-snapshot/ml-cpp/latest/master.json" + assert "latest/main.json" not in url + assert expected == "9.6.0-SNAPSHOT" + + def test_main_skips_dra_wait_for_sandbox_branch(capsys) -> None: mod = _load_wait_module() with patch.dict( diff --git a/dev-tools/wait_version_bump_dra.py b/dev-tools/wait_version_bump_dra.py index 4dd8fe502..541a38ebc 100755 --- a/dev-tools/wait_version_bump_dra.py +++ b/dev-tools/wait_version_bump_dra.py @@ -45,6 +45,10 @@ STAGING_TMPL = "https://artifacts-staging.elastic.co/ml-cpp/latest/{branch}.json" SNAPSHOT_TMPL = "https://storage.googleapis.com/elastic-artifacts-snapshot/ml-cpp/latest/{branch}.json" +# release-manager's project-configs dir for main is named "master", not "main", so the +# DRA "latest" snapshot alias it publishes is .../latest/master.json, never .../latest/main.json. +MAIN_BRANCH_DRA_ALIAS = "master" + def _meta_get(key: str) -> str | None: """Read Buildkite meta-data. Returns None when not on Buildkite or key is unset.""" @@ -145,7 +149,7 @@ def _wait_patch(branch: str, new_version: str) -> int: def _wait_minor(branch: str, new_version: str, main_new_version: str) -> int: - main_snapshot_url = SNAPSHOT_TMPL.format(branch="main") + main_snapshot_url = SNAPSHOT_TMPL.format(branch=MAIN_BRANCH_DRA_ALIAS) branch_staging_url = STAGING_TMPL.format(branch=branch) branch_snapshot_url = SNAPSHOT_TMPL.format(branch=branch) checks = [