mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 00:45:18 +03:00
e2b921724b
Having linux wheels is going to helps system without compiler or python-dev plus speed up the installation for everyone. I followed the manylinux example repository https://github.com/pypa/python-manylinux-demo to add a make target (build-linux-wheels) using official docker image to build python 2 linux wheels for mercurial. It generates Python 2.6 and Python 2.7 for both 32 and 64 bits architectures. I had to blacklist several test cases for various reasons: * test-convert-git.t and test-subrepo-git.t because of the git version * test-patchbomb-tls.t because of warning using tls 1.0 It's likely because the docker image is based on centos 5.0 and openssl is outdated.
35 lines
1.1 KiB
Bash
35 lines
1.1 KiB
Bash
#!/bin/bash
|
|
# This file is directly inspired by
|
|
# https://github.com/pypa/python-manylinux-demo/blob/master/travis/build-wheels.sh
|
|
set -e -x
|
|
|
|
PYTHON_TARGETS=$(ls -d /opt/python/cp2*/bin)
|
|
|
|
# Create an user for the tests
|
|
useradd hgbuilder
|
|
|
|
# Bypass uid/gid problems
|
|
cp -R /src /io && chown -R hgbuilder:hgbuilder /io
|
|
|
|
# Compile wheels for Python 2.X
|
|
for PYBIN in $PYTHON_TARGETS; do
|
|
"${PYBIN}/pip" wheel /io/ -w wheelhouse/
|
|
done
|
|
|
|
# Bundle external shared libraries into the wheels with
|
|
# auditwheel (https://github.com/pypa/auditwheel) repair.
|
|
# It also fix the ABI tag on the wheel making it pip installable.
|
|
for whl in wheelhouse/*.whl; do
|
|
auditwheel repair "$whl" -w /src/wheelhouse/
|
|
done
|
|
|
|
# Install packages and run the tests for all Python versions
|
|
cd /io/tests/
|
|
|
|
for PYBIN in $PYTHON_TARGETS; do
|
|
# Install mercurial wheel as root
|
|
"${PYBIN}/pip" install mercurial --no-index -f /src/wheelhouse
|
|
# But run tests as hgbuilder user (non-root)
|
|
su hgbuilder -c "\"${PYBIN}/python\" /io/tests/run-tests.py --with-hg=\"${PYBIN}/hg\" --blacklist=/io/contrib/linux-wheel-centos5-blacklist"
|
|
done
|