feat(release): publish qualified channel pointers

This commit is contained in:
2026-07-27 17:11:56 +00:00
committed by didericis
parent 1b86847f0d
commit e3d17dbc07
3 changed files with 295 additions and 0 deletions
+42
View File
@@ -0,0 +1,42 @@
#!/usr/bin/env python3
"""Publish a qualified release and advance its matching channel."""
from __future__ import annotations
import argparse
import json
from pathlib import Path
from bot_bottle.release_qualification import (
build_release_pointer,
canonical_pointer,
publish_qualification,
)
def main() -> None:
parser = argparse.ArgumentParser()
parser.add_argument("--tag", required=True)
parser.add_argument("--source-commit", required=True)
parser.add_argument("--workflow-run", required=True)
parser.add_argument("--qualified-at", required=True)
parser.add_argument("--output", type=Path, default=Path("release.json"))
parser.add_argument("--allow-rollback", action="store_true")
args = parser.parse_args()
pointer = build_release_pointer(
tag=args.tag,
source_commit=args.source_commit,
workflow_run=args.workflow_run,
qualified_at=args.qualified_at,
)
args.output.write_bytes(canonical_pointer(pointer))
release_url, channel_url = publish_qualification(
pointer, allow_rollback=args.allow_rollback)
print(json.dumps({
"release": release_url,
"channel": channel_url,
}, sort_keys=True))
if __name__ == "__main__":
main()