Skip to content

Commit

Permalink
Add script to download wheels from appveyor
Browse files Browse the repository at this point in the history
  • Loading branch information
bdarnell committed Mar 3, 2019
1 parent 6a5a0bf commit 8f1e94f
Showing 1 changed file with 41 additions and 0 deletions.
41 changes: 41 additions & 0 deletions maint/scripts/download_wheels.py
Original file line number Diff line number Diff line change
@@ -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())

0 comments on commit 8f1e94f

Please sign in to comment.