11# Workflow to build and test wheels
22# =================================
33# This github action gets triggered whenever there
4- # is a push to the master branch or a release is created.
5- # It generates both wheels and distributions files,
4+ # is a push to the master branch or a release is created.
5+ # It generates both wheels and distributions files,
66# making sure their contents are correct via unit-testing.
77#
88# However, only in the case of a github release, the assets
1515# 2- Whenever there is enough PRs in the master branch, we expect the user
1616# to create a release following github guidelines from here:
1717# https://docs.github.com/en/github/administering-a-repository/releasing-projects-on-github/managing-releases-in-a-repository
18- # During a github release, you create a tagged-version (something like v2.3.4.),
18+ # During a github release, you create a tagged-version (something like v2.3.4.),
1919# add a title to the release and a description. Then you publish the release via the
2020# publish-button. This effectively creates a github release, triggering this action.
21- # When this triggered action finished, the release files are automatically uploaded
21+ # When this triggered action finished, the release files are automatically uploaded
2222# to your github release page. Check for example:
2323# https://github.com/automl/ConfigSpace/releases
2424#
2929name : Wheel builder
3030
3131on :
32+ workflow_dispatch :
33+
3234 push :
3335 branches :
3436 - master
3840 tags :
3941 - v*
4042
43+
4144jobs :
4245 # Build the wheels for Linux
4346 build_wheels :
@@ -48,21 +51,149 @@ jobs:
4851 # Ensure that a wheel builder finishes even if another fails
4952 fail-fast : false
5053 matrix :
51- os : [ubuntu-latest]
52- python : [37, 38, 39]
53- bitness : [32, 64]
54- manylinux_image : [manylinux2014]
5554 include :
55+ # Window 64 bit
56+ - os : windows-latest
57+ python : 37
58+ bitness : 64
59+ platform_id : win_amd64
60+ - os : windows-latest
61+ python : 38
62+ bitness : 64
63+ platform_id : win_amd64
64+ - os : windows-latest
65+ python : 39
66+ bitness : 64
67+ platform_id : win_amd64
68+ - os : windows-latest
69+ python : 310
70+ bitness : 64
71+ platform_id : win_amd64
72+
73+ # Window 32 bit
74+ - os : windows-latest
75+ python : 37
76+ bitness : 32
77+ platform_id : win32
78+ - os : windows-latest
79+ python : 38
80+ bitness : 32
81+ platform_id : win32
82+ - os : windows-latest
83+ python : 39
84+ bitness : 32
85+ platform_id : win32
86+
87+ # Linux 64 bit manylinux1
88+ - os : ubuntu-latest
89+ python : 37
90+ bitness : 64
91+ platform_id : manylinux_x86_64
92+ manylinux_image : manylinux1
93+ - os : ubuntu-latest
94+ python : 38
95+ bitness : 64
96+ platform_id : manylinux_x86_64
97+ manylinux_image : manylinux1
98+ - os : ubuntu-latest
99+ python : 39
100+ bitness : 64
101+ platform_id : manylinux_x86_64
102+ manylinux_image : manylinux1
103+
104+ # Linux 64 bit manylinux2010
105+ - os : ubuntu-latest
106+ python : 37
107+ bitness : 64
108+ platform_id : manylinux_x86_64
109+ manylinux_image : manylinux2010
110+ - os : ubuntu-latest
111+ python : 38
112+ bitness : 64
113+ platform_id : manylinux_x86_64
114+ manylinux_image : manylinux2010
115+ - os : ubuntu-latest
116+ python : 39
117+ bitness : 64
118+ platform_id : manylinux_x86_64
119+ manylinux_image : manylinux2010
120+
121+ # NumPy on Python 3.10 only supports 64bit and is only available with manylinux2014
56122 - os : ubuntu-latest
123+ python : 310
57124 bitness : 64
58125 platform_id : manylinux_x86_64
126+ manylinux_image : manylinux2014
127+
128+ # Linux 32 bit manylinux1
129+ - os : ubuntu-latest
130+ python : 37
131+ bitness : 32
132+ platform_id : manylinux_i686
133+ manylinux_image : manylinux1
59134 - os : ubuntu-latest
135+ python : 38
60136 bitness : 32
61137 platform_id : manylinux_i686
138+ manylinux_image : manylinux1
139+ - os : ubuntu-latest
140+ python : 39
141+ bitness : 32
142+ platform_id : manylinux_i686
143+ manylinux_image : manylinux1
144+
145+ # Linux 32 bit manylinux2010
146+ - os : ubuntu-latest
147+ python : 37
148+ bitness : 32
149+ platform_id : manylinux_i686
150+ manylinux_image : manylinux2010
151+ - os : ubuntu-latest
152+ python : 38
153+ bitness : 32
154+ platform_id : manylinux_i686
155+ manylinux_image : manylinux2010
156+ - os : ubuntu-latest
157+ python : 39
158+ bitness : 32
159+ platform_id : manylinux_i686
160+ manylinux_image : manylinux2010
161+
162+ # MacOS x86_64
163+ - os : macos-latest
164+ bitness : 64
165+ python : 37
166+ platform_id : macosx_x86_64
167+ - os : macos-latest
168+ bitness : 64
169+ python : 38
170+ platform_id : macosx_x86_64
171+ - os : macos-latest
172+ bitness : 64
173+ python : 39
174+ platform_id : macosx_x86_64
175+ - os : macos-latest
176+ bitness : 64
177+ python : 310
178+ platform_id : macosx_x86_64
179+
180+ # MacOS arm64
181+ # - os: macos-latest
182+ # bitness: 64
183+ # python: 38
184+ # platform_id: macosx_arm64
185+ # - os: macos-latest
186+ # bitness: 64
187+ # python: 39
188+ # platform_id: macosx_arm64
189+ # - os: macos-latest
190+ # bitness: 64
191+ # python: 310
192+ # platform_id: macosx_arm64
62193
63194 steps :
64195 - name : Checkout ConfigSpace
65- uses : actions/checkout@v1
196+ uses : actions/checkout@v2
66197
67198 - name : Setup Python
68199 uses : actions/setup-python@v2
73204 CIBW_MANYLINUX_X86_64_IMAGE : ${{ matrix.manylinux_image }}
74205 CIBW_MANYLINUX_I686_IMAGE : ${{ matrix.manylinux_image }}
75206 CIBW_TEST_REQUIRES : pytest threadpoolctl numpy
76- CIBW_TEST_COMMAND : pytest -v / project/test
207+ CIBW_TEST_COMMAND : pytest -v { project} /test
77208
78209 run : |
79210 python -m pip install cibuildwheel
91222
92223 steps :
93224 - name : Checkout ConfigSpace
94- uses : actions/checkout@v1
225+ uses : actions/checkout@v2
95226
96227 - name : Setup Python
97228 uses : actions/setup-python@v2
@@ -106,10 +237,12 @@ jobs:
106237 last_dist=$(ls -t dist/ConfigSpace-*.tar.gz | head -n 1)
107238 twine_output=`twine check "$last_dist"`
108239 if [[ "$twine_output" != "Checking $last_dist: PASSED" ]]; then echo $twine_output && exit 1;fi
240+
109241 - name : Install dist
110242 run : |
111243 last_dist=$(ls -t dist/ConfigSpace-*.tar.gz | head -n 1)
112244 pip install $last_dist
245+
113246 - name : PEP 561 Compliance
114247 run : |
115248 pip install mypy
0 commit comments