feat: support Windows workaround on Travis CI

This commit is contained in:
Henry Fredrick Schreiner
2021-01-22 13:01:00 -05:00
committed by Henry Schreiner
parent c90c7666b9
commit eb9850dbde
5 changed files with 13 additions and 5 deletions
+2 -1
View File
@@ -70,7 +70,8 @@ def get_python_configurations(
'64': Architecture.AMD64,
}
if IS_RUNNING_ON_TRAVIS:
custom_compiler = os.environ.get('DISTUTILS_USE_SDK') and os.environ.get('MSSdk')
if IS_RUNNING_ON_TRAVIS and not custom_compiler:
# cannot install VCForPython27.msi which is needed for compiling C software
# try with (and similar): msiexec /i VCForPython27.msi ALLUSERS=1 ACCEPT=YES /passive
python_configurations = [c for c in python_configurations if not c.version.startswith('2.7')]
+1 -1
View File
@@ -44,7 +44,7 @@ To build Linux, Mac, and Windows wheels on Travis CI, create a `.travis.yml` fil
{% include "../examples/travis-ci-minimal.yml" %}
```
Note that building Windows Python 2.7 wheels on Travis is unsupported.
Note that building Windows Python 2.7 wheels on Travis is unsupported unless using a newer compiler [via a workaround](cpp-standards.md).
Commit this file, enable building of your repo on Travis CI, and push.
+1 -1
View File
@@ -202,7 +202,7 @@ def test_cpp17_py27_modern_msvc_workaround(tmp_path):
add_env_x64['CIBW_BUILD'] = 'cp27-win_amd64'
actual_wheels += utils.cibuildwheel_run(project_dir, add_env=add_env_x64)
expected_wheels = [w for w in utils.expected_wheels('spam', '0.1.0')
expected_wheels = [w for w in utils.expected_wheels('spam', '0.1.0', filter_27=False)
if 'cp27-cp27m-win' in w
or 'pp27-pypy_73-win32' in w]
+6
View File
@@ -52,6 +52,9 @@ def test_pinned_versions(tmp_path, python_version):
if utils.platform == 'linux':
pytest.skip('linux doesn\'t pin individual tool versions, it pins manylinux images instead')
if utils.IS_WINDOWS_RUNNING_ON_TRAVIS and python_version == '2.7':
pytest.skip('Windows + Travis CI requires a workaround')
project_dir = tmp_path / 'project'
project_with_expected_version_checks.generate(project_dir)
@@ -114,6 +117,9 @@ def test_dependency_constraints_file(tmp_path, python_version):
if utils.platform == 'linux':
pytest.skip('linux doesn\'t pin individual tool versions, it pins manylinux images instead')
if utils.IS_WINDOWS_RUNNING_ON_TRAVIS and python_version == '2.7':
pytest.skip('Windows + Travis CI requires a workaround')
project_dir = tmp_path / 'project'
project_with_expected_version_checks.generate(project_dir)
+3 -2
View File
@@ -76,7 +76,8 @@ def cibuildwheel_run(project_path, package_dir='.', env=None, add_env=None, outp
def expected_wheels(package_name, package_version, manylinux_versions=None,
macosx_deployment_target='10.9', machine_arch=None):
macosx_deployment_target='10.9', machine_arch=None, *,
filter_27=IS_WINDOWS_RUNNING_ON_TRAVIS):
'''
Returns a list of expected wheels from a run of cibuildwheel.
'''
@@ -134,7 +135,7 @@ def expected_wheels(package_name, package_version, manylinux_versions=None,
for platform_tag in platform_tags:
wheels.append(f'{package_name}-{package_version}-{python_abi_tag}-{platform_tag}.whl')
if IS_WINDOWS_RUNNING_ON_TRAVIS:
if filter_27:
# Python 2.7 isn't supported on Travis.
wheels = [w for w in wheels if '-cp27-' not in w and '-pp2' not in w]