forked from zeromq/pyzmq
-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathappveyor.yml
145 lines (125 loc) · 5.31 KB
/
appveyor.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
shallow_clone: false
skip_branch_with_pr: true
clone_depth: 1
# mostly copied from
environment:
global:
# SDK v7.0 MSVC Express 2008's SetEnv.cmd script will fail if the
# /E:ON and /V:ON options are not enabled in the batch script intepreter
# See: http://stackoverflow.com/a/13751649/163740
CMD_IN_ENV: "cmd /E:ON /V:ON /C .\\tools\\run_with_env.cmd"
TWINE_NON_INTERACTIVE: "1"
TWINE_REPOSITORY: https://upload.pypi.org/legacy/
TWINE_USERNAME: __token__
TWINE_PASSWORD:
secure: NVlc8AZi0Y/k+ZiyFs9rfCoFRbeOqG+PVGSRTM9KpwN3Zantsl9h+/mbT7M7FOkLyIZvo41njOfGKekw762uJDy2Cp/jBhBz/qNgQNHC/+ith/r+NjaRvgO4P783ItckYhG/e0lvWBs8rmdMroC2hNUmL9nGXxbtzn7vG1ZCSkOsyNHRejzTu4Xd/uksFDViLhnJmxQyaozqa5KKcuBoFv4IxkNuoqdE7TgdFEJUmZcciDF13LfWsgm/lARDIsHoze7V5CR139XV1RtGFg5W+A==
matrix:
- PYTHON: "C:\\Python39-x64"
PYTHON_VERSION: "3.9.0"
PYTHON_ARCH: 64
- PYTHON: "C:\\Python38"
PYTHON_VERSION: "3.8.x"
PYTHON_ARCH: 32
- PYTHON: "C:\\Python38-x64"
PYTHON_VERSION: "3.8.x"
PYTHON_ARCH: 64
- PYTHON: "C:\\Python37"
PYTHON_VERSION: "3.7.x"
PYTHON_ARCH: 32
- PYTHON: "C:\\Python37-x64"
PYTHON_VERSION: "3.7.x"
PYTHON_ARCH: 64
- PYTHON: "C:\\Python36"
PYTHON_VERSION: "3.6.x"
PYTHON_ARCH: 32
- PYTHON: "C:\\Python36-x64"
PYTHON_VERSION: "3.6.x"
PYTHON_ARCH: 64
- PYTHON: "C:\\Python35"
PYTHON_VERSION: "3.5.x"
PYTHON_ARCH: 32
- PYTHON: "C:\\Python35-x64"
PYTHON_VERSION: "3.5.x"
PYTHON_ARCH: 64
matrix:
fast_finish: true
cache:
- C:\Users\appveyor\AppData\Local\pip\Cache
install:
# If there is a newer build queued for the same PR, cancel this one.
# The AppVeyor 'rollout builds' option is supposed to serve the same
# purpose but it is problematic because it tends to cancel builds pushed
# directly to master instead of just PR builds (or the converse).
# credits: JuliaLang developers.
- ECHO "Filesystem root:"
- ps: "ls \"C:/\""
- ECHO "Installed SDKs:"
- ps: "ls \"C:/Program Files/Microsoft SDKs/Windows\""
- ps: |
# from https://github.com/appveyor/build-images/blob/27bde614bc60d7ef7a8bc46182f4d7582fa11b56/scripts/Windows/install_python.ps1#L88-L108
function InstallPythonEXE($version, $platform, $targetPath) {
$urlPlatform = ""
if ($platform -eq 'x64') {
$urlPlatform = "-amd64"
}
Write-Host "Installing Python $version $platform to $($targetPath)..." -ForegroundColor Cyan
$downloadUrl = "https://www.python.org/ftp/python/$version/python-$version$urlPlatform.exe"
Write-Host "Downloading $($downloadUrl)..."
$exePath = "$env:TEMP\python-$version.exe"
(New-Object Net.WebClient).DownloadFile($downloadUrl, $exePath)
Write-Host "Installing..."
cmd /c start /wait $exePath /quiet TargetDir="$targetPath" Shortcuts=0 Include_launcher=1 InstallLauncherAllUsers=1 Include_debug=1
Remove-Item $exePath
Write-Host "Installed Python $version" -ForegroundColor Green
}
if ( -not ( Test-Path -Path $env:PYTHON -PathType Container ) ) {
InstallPythonEXE $env:PYTHON_VERSION "x64" $env:PYTHON
}
# Prepend newly installed Python to the PATH of this build (this cannot be
# done from inside the powershell script as it would require to restart
# the parent CMD process).
- "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. Install wheel package separate so that
# we also cache wheels
- python -m pip install --upgrade pip wheel
- pip install --upgrade setuptools cython -r test-requirements.txt
build_script:
# Build the compiled extension
- "%CMD_IN_ENV% python setup.py bdist_wheel --zmq=bundled"
- ps: "ls dist"
- forfiles /p dist /m *.whl /c "cmd /c pip install @path"
# uncomment to block RDP for debugging
# on_finish:
# - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
test_script:
# Run the project tests
- cd dist
- python -c "import zmq; print(zmq.zmq_version())"
# ``test_win32_shim`` will create a CTLR-C event which will be sent
# to all processes that share the same group id and creates problems
# with the appveyor build. To avoid the problems we single out that
# specific test run it using the ``start`` command and then check
# the junit report to pass or fail the build.
- pytest -vsx -m "not new_console" --pyargs zmq.tests
- start /W pytest -vsx -m "new_console" --pyargs zmq.tests --junit-xml=../results.xml
- python ../tools/check_junit_result.py ../results.xml
- cd ..
after_test:
# If tests are successful, create binary packages for the project.
- ps: ls dist
# Upload whl files if building a tag.
- >
IF "%APPVEYOR_REPO_TAG%" == "true"
(
python3 -m pip install twine &&
python3 -m twine upload --verbose --skip-existing dist/*.whl
)
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