+++ /dev/null
-# Appveyor is Windows CI: https://ci.appveyor.com/project/bdarnell/tornado
-environment:
- global:
- TORNADO_EXTENSION: "1"
-
- # We only build with 3.5+ because it works out of the box, while other
- # versions require lots of machinery.
- #
- # We produce binary wheels for 32- and 64-bit builds, but because
- # the tests are so slow on Windows (6 minutes vs 15 seconds on Linux
- # or MacOS), we don't want to test the full matrix. We do full
- # tests on a couple of configurations and on the others we limit
- # the tests to the websocket module (which, because it exercises the
- # C extension module, is most likely to exhibit differences between
- # 32- and 64-bits)
- matrix:
- - PYTHON: "C:\\Python35"
- PYTHON_VERSION: "3.5.x"
- PYTHON_ARCH: "32"
- TOX_ENV: "py35"
- TOX_ARGS: ""
-
- - PYTHON: "C:\\Python35-x64"
- PYTHON_VERSION: "3.5.x"
- PYTHON_ARCH: "64"
- TOX_ENV: "py35"
- TOX_ARGS: "tornado.test.websocket_test"
-
- - PYTHON: "C:\\Python36"
- PYTHON_VERSION: "3.6.x"
- PYTHON_ARCH: "32"
- TOX_ENV: "py36"
- TOX_ARGS: "tornado.test.websocket_test"
-
- - PYTHON: "C:\\Python36-x64"
- PYTHON_VERSION: "3.6.x"
- PYTHON_ARCH: "64"
- TOX_ENV: "py36"
- TOX_ARGS: ""
-
- - PYTHON: "C:\\Python37"
- PYTHON_VERSION: "3.7.x"
- PYTHON_ARCH: "32"
- TOX_ENV: "py37"
- TOX_ARGS: "tornado.test.websocket_test"
-
- - PYTHON: "C:\\Python37-x64"
- PYTHON_VERSION: "3.7.x"
- PYTHON_ARCH: "64"
- TOX_ENV: "py37"
- TOX_ARGS: ""
-
- - PYTHON: "C:\\Python38"
- PYTHON_VERSION: "3.8.x"
- PYTHON_ARCH: "32"
- TOX_ENV: "py38"
- TOX_ARGS: "--fail-if-logs=false tornado.test.websocket_test"
-
- - PYTHON: "C:\\Python38-x64"
- PYTHON_VERSION: "3.8.x"
- PYTHON_ARCH: "64"
- TOX_ENV: "py38"
- # Suppress the log-cleanliness assertions because of https://bugs.python.org/issue39010
- TOX_ARGS: "--fail-if-logs=false"
-
-install:
- # Make sure the right python version is first on the PATH.
- - "SET PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%"
-
- # Check that we have the expected version and architecture for Python
- - "python --version"
- - "python -c \"import struct; print(struct.calcsize('P') * 8)\""
-
- # Upgrade to the latest version of pip to avoid it displaying warnings
- # about it being out of date.
- - "python -m pip install --disable-pip-version-check --user --upgrade pip"
-
- - "python -m pip install tox wheel"
-
-build: false # Not a C# project, build stuff at the test step instead.
-
-test_script:
- # Build the compiled extension and run the project tests.
- # This is a bit of a hack that doesn't scale with new python versions,
- # but for now it lets us avoid duplication with .travis.yml and tox.ini.
- # Running "py3x-full" would be nice but it's failing on installing
- # dependencies with no useful logs.
- - "tox -e %TOX_ENV% -- %TOX_ARGS%"
-
-after_test:
- # If tests are successful, create binary packages for the project.
- - "python setup.py bdist_wheel"
- - ps: "ls dist"
-
-artifacts:
- # Archive the generated packages in the ci.appveyor.com build report.
- - path: dist\*
-
-#on_success:
-# - TODO: upload the content of dist/*.whl to a public wheelhouse
-#
+++ /dev/null
-#!/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())