feat(release): publish qualified channel pointers
This commit is contained in:
@@ -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()
|
||||
Reference in New Issue
Block a user