From 8f1e94f79ddd398112ed33485bfc3d735e1edda2 Mon Sep 17 00:00:00 2001 From: Ben Darnell Date: Sun, 3 Mar 2019 13:37:39 -0500 Subject: [PATCH] Add script to download wheels from appveyor --- maint/scripts/download_wheels.py | 41 ++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100755 maint/scripts/download_wheels.py diff --git a/maint/scripts/download_wheels.py b/maint/scripts/download_wheels.py new file mode 100755 index 000000000..03379058d --- /dev/null +++ b/maint/scripts/download_wheels.py @@ -0,0 +1,41 @@ +#!/usr/bin/env python3 + +import asyncio +import json +import pathlib +import sys +from tornado.httpclient import AsyncHTTPClient + +BASE_URL = "https://ci.appveyor.com/api" + + +async def fetch_job(directory, job): + http = AsyncHTTPClient() + artifacts = await http.fetch(f"{BASE_URL}/buildjobs/{job}/artifacts") + paths = [pathlib.PurePosixPath(a["fileName"]) for a in json.loads(artifacts.body)] + + for path in paths: + artifact = await http.fetch(f"{BASE_URL}/buildjobs/{job}/artifacts/{path}") + with open(directory.joinpath(path.name), "wb") as f: + f.write(artifact.body) + + +async def main(): + http = AsyncHTTPClient() + try: + _, version = sys.argv + except ValueError: + print("usage: maint/scripts/download_wheels.py v6.0.1", file=sys.stderr) + sys.exit(1) + + directory = pathlib.Path(f"downloads-{version}") + directory.mkdir(exist_ok=True) + + build = await http.fetch(f"{BASE_URL}/projects/bdarnell/tornado/branch/{version}") + jobs = [job["jobId"] for job in json.loads(build.body)["build"]["jobs"]] + + await asyncio.gather(*(fetch_job(directory, job) for job in jobs)) + + +if __name__ == "__main__": + asyncio.run(main()) -- 2.47.2