first attempt at windows builds, with appveyor.com
The .appveyor.yml tells the tox.ini to install pypiwin32 directly, rather than through a "twisted[windows]" extra. I wasn't able to get the "extra" syntax to work properly under appyeyor, even though it worked ok for me locally. We use an extra "meta" tox environment to run "wormhole --version". This confirms that versioneer is getting the right value, since we're now running it from an installed sdist, rather than a checked-out git source tree.
This commit is contained in:
parent
ed1eb06ae8
commit
f28f294138
65
.appveyor.yml
Normal file
65
.appveyor.yml
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
# adapted from https://packaging.python.org/en/latest/appveyor/
|
||||||
|
|
||||||
|
|
||||||
|
environment:
|
||||||
|
# we tell Tox to use "twisted[windows]", to get pypiwin32 installed
|
||||||
|
#TWISTED_EXTRAS: "[windows]"
|
||||||
|
# that didn't work (it seems to work when I run it locally, but on appveyor
|
||||||
|
# it fails to install the pypiwin32 package). So don't bother telling
|
||||||
|
# Twisted to support windows: just install it ourselves.
|
||||||
|
EXTRA_DEPENDENCY: "pypiwin32"
|
||||||
|
matrix:
|
||||||
|
# For Python versions available on Appveyor, see
|
||||||
|
# http://www.appveyor.com/docs/installed-software#python
|
||||||
|
- PYTHON: "C:\\Python27"
|
||||||
|
- PYTHON: "C:\\Python27-x64"
|
||||||
|
- PYTHON: "C:\\Python33"
|
||||||
|
- PYTHON: "C:\\Python33-x64"
|
||||||
|
DISTUTILS_USE_SDK: "1"
|
||||||
|
- PYTHON: "C:\\Python34"
|
||||||
|
- PYTHON: "C:\\Python34-x64"
|
||||||
|
DISTUTILS_USE_SDK: "1"
|
||||||
|
- PYTHON: "C:\\Python35"
|
||||||
|
- PYTHON: "C:\\Python35-x64"
|
||||||
|
DISTUTILS_USE_SDK: "1"
|
||||||
|
|
||||||
|
# tox-2.3.1 has a windows bug (#314), fixed in hg but not yet released. When
|
||||||
|
# the next release comes out, replace this with just:
|
||||||
|
# %PYTHON%\python.exe -m pip install wheel tox
|
||||||
|
|
||||||
|
install:
|
||||||
|
- |
|
||||||
|
%PYTHON%\python.exe -m pip install -U pip virtualenv
|
||||||
|
%PYTHON%\python.exe -m pip install wheel "hg+https://bitbucket.org/hpk42/tox#egg=tox"
|
||||||
|
|
||||||
|
# note:
|
||||||
|
# %PYTHON% has: python.exe
|
||||||
|
# %PYTHON%\Scripts has: pip.exe, tox.exe (and others installed by bare pip)
|
||||||
|
|
||||||
|
|
||||||
|
build: off
|
||||||
|
|
||||||
|
test_script:
|
||||||
|
# Put your test command here.
|
||||||
|
# Note that you must use the environment variable %PYTHON% to refer to
|
||||||
|
# the interpreter you're using - Appveyor does not do anything special
|
||||||
|
# to put the Python evrsion you want to use on PATH.
|
||||||
|
- |
|
||||||
|
misc\windows-build.cmd %PYTHON%\Scripts\tox.exe -e py,meta
|
||||||
|
|
||||||
|
after_test:
|
||||||
|
# This step builds your wheels.
|
||||||
|
# Again, you only need build.cmd if you're building C extensions for
|
||||||
|
# 64-bit Python 3.3/3.4. And you need to use %PYTHON% to get the correct
|
||||||
|
# interpreter
|
||||||
|
- |
|
||||||
|
misc\windows-build.cmd %PYTHON%\python.exe setup.py bdist_wheel
|
||||||
|
|
||||||
|
artifacts:
|
||||||
|
# bdist_wheel puts your built wheel in the dist directory
|
||||||
|
- path: dist\*
|
||||||
|
|
||||||
|
#on_success:
|
||||||
|
# You can use this step to upload your artifacts to a public website.
|
||||||
|
# See Appveyor's documentation for more details. Or you can simply
|
||||||
|
# access your wheels from the Appveyor "artifacts" tab for your build.
|
21
misc/windows-build.cmd
Normal file
21
misc/windows-build.cmd
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
@echo off
|
||||||
|
:: To build extensions for 64 bit Python 3, we need to configure environment
|
||||||
|
:: variables to use the MSVC 2010 C++ compilers from GRMSDKX_EN_DVD.iso of:
|
||||||
|
:: MS Windows SDK for Windows 7 and .NET Framework 4
|
||||||
|
::
|
||||||
|
:: More details at:
|
||||||
|
:: https://github.com/cython/cython/wiki/64BitCythonExtensionsOnWindows
|
||||||
|
|
||||||
|
IF "%DISTUTILS_USE_SDK%"=="1" (
|
||||||
|
ECHO Configuring environment to build with MSVC on a 64bit architecture
|
||||||
|
ECHO Using Windows SDK 7.1
|
||||||
|
"C:\Program Files\Microsoft SDKs\Windows\v7.1\Setup\WindowsSdkVer.exe" -q -version:v7.1
|
||||||
|
CALL "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64 /release
|
||||||
|
SET MSSdk=1
|
||||||
|
REM Need the following to allow tox to see the SDK compiler
|
||||||
|
SET TOX_TESTENV_PASSENV=DISTUTILS_USE_SDK MSSdk INCLUDE LIB
|
||||||
|
) ELSE (
|
||||||
|
ECHO Using default MSVC build environment
|
||||||
|
)
|
||||||
|
|
||||||
|
CALL %*
|
17
tox.ini
17
tox.ini
|
@ -13,14 +13,31 @@ skip_missing_interpreters = True
|
||||||
# all builds with a copy of Twisted from git 'trunk' until Twisted-16.0.0 is
|
# all builds with a copy of Twisted from git 'trunk' until Twisted-16.0.0 is
|
||||||
# released and we can just depend on that.
|
# released and we can just depend on that.
|
||||||
|
|
||||||
|
# On windows we need "pypiwin32" installed. It's supposedly possible to make
|
||||||
|
# Twisted do this by depending upon "twisted[windows]" instead of just
|
||||||
|
# "twisted", but when I try this via Appveyor, the extra is ignored.
|
||||||
|
# git+https://github.com/twisted/twisted#egg=twisted{env:TWISTED_EXTRAS:}
|
||||||
|
# #twisted{env:TWISTED_EXTRAS:}
|
||||||
|
# So instead we have the .appveyor.yml set EXTRA_DEPENDENCY=pypiwin32. In
|
||||||
|
# other environments, this variable will be empty, and tox will ignore the
|
||||||
|
# blank value.
|
||||||
|
|
||||||
[testenv]
|
[testenv]
|
||||||
deps =
|
deps =
|
||||||
git+https://github.com/twisted/twisted#egg=twisted
|
git+https://github.com/twisted/twisted#egg=twisted
|
||||||
#twisted
|
#twisted
|
||||||
|
{env:EXTRA_DEPENDENCY:}
|
||||||
coverage
|
coverage
|
||||||
commands =
|
commands =
|
||||||
trial {posargs:wormhole}
|
trial {posargs:wormhole}
|
||||||
|
|
||||||
|
# on windows, trial is installed as venv/bin/trial.py, not .exe, but (at
|
||||||
|
# least appveyor) adds .PY to $PATHEXT. So "trial wormhole" might work on
|
||||||
|
# windows, and certainly does on unix. To get "coverage run" to work, we need
|
||||||
|
# a script name (since "python -m twisted.scripts.trial" doesn't have a 'if
|
||||||
|
# __name__ == "__main__": run()' -style clause). The script name will vary on
|
||||||
|
# the platform.
|
||||||
|
|
||||||
[testenv:meta]
|
[testenv:meta]
|
||||||
deps =
|
deps =
|
||||||
pyflakes
|
pyflakes
|
||||||
|
|
Loading…
Reference in New Issue
Block a user