forked from DEAP/deap
-
Notifications
You must be signed in to change notification settings - Fork 0
/
azure-pipelines.yml
136 lines (131 loc) · 4.65 KB
/
azure-pipelines.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
# Python package
# Create and test a Python package on multiple Python versions.
# Add steps that analyze code, save the dist with the build record, publish to a PyPI-compatible index, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/python
trigger: none
jobs:
- job: WindowsBuild
pool:
vmImage: 'vs2017-win2016'
strategy:
matrix:
Python36_VS2017:
python.version: '3.6'
Python37_VS2017:
python.version: '3.7'
Python38_VS2017:
python.version: '3.8'
Python39_VS2017:
python.version: '3.9'
Python310_VS2017:
python.version: '3.10'
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '$(python.version)'
displayName: 'Use Python $(python.version)'
- script: |
python -m pip install --upgrade pip
pip install numpy
displayName: 'Install dependencies'
- script: |
pip install wheel twine
displayName: 'Install build tools'
- script: |
python setup.py sdist bdist_wheel
twine upload -r pypi -u $(twineUsername) -p $(twinePassword) --skip-existing --disable-progress-bar dist/*
displayName: 'Publish wheel to PyPi'
- job: macOS10_14Build
pool:
vmImage: 'macOS-10.14'
strategy:
matrix:
Python36_macOS1014:
python.version: '3.6'
Python37_macOS1014:
python.version: '3.7'
Python38_macOS1014:
python.version: '3.8'
Python39_macOS1014:
python.version: '3.9'
Python310_macOS1014:
python.version: '3.10'
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '$(python.version)'
displayName: 'Use Python $(python.version)'
- script: |
python -m pip install --upgrade pip
pip install numpy
displayName: 'Install dependencies'
- script: |
pip install wheel twine
displayName: 'Install build tools'
- script: |
python setup.py sdist bdist_wheel
twine upload -r pypi -u $(twineUsername) -p $(twinePassword) --skip-existing --disable-progress-bar dist/*
displayName: 'Publish wheel to PyPi'
- job: Manylinux2010Build
pool:
vmImage: 'ubuntu-16.04'
container: quay.io/pypa/manylinux2010_x86_64:latest
variables:
python: /opt/python/cp37-cp37m/bin/python
steps:
- script: |
for PYBIN in /opt/python/*/bin; do
"${PYBIN}/pip" install --user numpy twine
done
displayName: 'Install dependencies and build tools'
- script: |
for PYBIN in /opt/python/*/bin; do
"${PYBIN}/pip" wheel . -w wheelhouse/
done
displayName: 'Build wheels'
- script: |
for whl in wheelhouse/deap*.whl; do
auditwheel repair "$whl" --plat manylinux2010_x86_64 -w wheelhouse-manylinux/
done
displayName: 'Audit wheels'
- script: |
$(python) -m twine upload -r pypi -u $(twineUsername) -p $(twinePassword) --skip-existing --disable-progress-bar wheelhouse-manylinux/*
displayName: 'Publish wheel to PyPi'
- job: AArch64_Manylinux2014Build
pool:
vmImage: 'ubuntu-18.04'
strategy:
matrix:
Py36 Arm64:
python.version: 'cp36-cp36m'
manylinux: 'manylinux_aarch64'
Py37 Arm64:
python.version: 'cp37-cp37m'
manylinux: 'manylinux_aarch64'
Py38 Arm64:
python.version: 'cp38-cp38'
manylinux: 'manylinux_aarch64'
Py39 Arm64:
python.version: 'cp39-cp39'
manylinux: 'manylinux_aarch64'
Py310 Arm64:
python.version: 'cp310-cp310'
manylinux: 'manylinux_aarch64'
steps:
- script: docker run --rm --privileged hypriot/qemu-register
displayName: 'Registering qemu'
- script: |
docker run -v $(pwd):"${DOCKER_ROOT_DIRECTORY}":rw,z \
-e HOST_USER_ID \
"quay.io/pypa/manylinux2014_aarch64:latest" \
bash -c "cd $DOCKER_ROOT_DIRECTORY;
"${PYBIN}/pip" install --upgrade pip && \
"${PYBIN}/pip" install twine numpy && \
"${PYBIN}/pip" wheel . -w wheelhouse/ && \
auditwheel repair wheelhouse/deap*.whl --plat manylinux2014_aarch64 -w wheelhouse-manylinux && \
"${PYBIN}/python" -m twine upload -r pypi -u $(twineUsername) -p $(twinePassword) --skip-existing --disable-progress-bar wheelhouse-manylinux/*"
displayName: 'Running AArch64 build'
env:
DOCKER_ROOT_DIRECTORY: "/home/source_root"
HOST_USER_ID: $(id -u)
PYBIN: /opt/python/$(python.version)/bin