author | Gregory Szorc <gregory.szorc@gmail.com> |
Sat, 10 Mar 2018 10:20:51 -0800 | |
changeset 36806 | 69b2d0900cd7 |
parent 33579 | 637267114513 |
permissions | -rwxr-xr-x |
32080
fcddcf442e4f
packaging: add make target for linux wheels
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
1 |
#!/bin/bash |
fcddcf442e4f
packaging: add make target for linux wheels
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
2 |
# This file is directly inspired by |
fcddcf442e4f
packaging: add make target for linux wheels
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
3 |
# https://github.com/pypa/python-manylinux-demo/blob/master/travis/build-wheels.sh |
fcddcf442e4f
packaging: add make target for linux wheels
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
4 |
set -e -x |
fcddcf442e4f
packaging: add make target for linux wheels
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
5 |
|
33579
637267114513
contrib: drop Python 2.6 from manylinux1 wheel script
Augie Fackler <augie@google.com>
parents:
32080
diff
changeset
|
6 |
PYTHON_TARGETS=$(ls -d /opt/python/cp27*/bin) |
32080
fcddcf442e4f
packaging: add make target for linux wheels
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
7 |
|
fcddcf442e4f
packaging: add make target for linux wheels
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
8 |
# Create an user for the tests |
fcddcf442e4f
packaging: add make target for linux wheels
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
9 |
useradd hgbuilder |
fcddcf442e4f
packaging: add make target for linux wheels
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
10 |
|
fcddcf442e4f
packaging: add make target for linux wheels
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
11 |
# Bypass uid/gid problems |
fcddcf442e4f
packaging: add make target for linux wheels
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
12 |
cp -R /src /io && chown -R hgbuilder:hgbuilder /io |
fcddcf442e4f
packaging: add make target for linux wheels
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
13 |
|
fcddcf442e4f
packaging: add make target for linux wheels
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
14 |
# Compile wheels for Python 2.X |
fcddcf442e4f
packaging: add make target for linux wheels
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
15 |
for PYBIN in $PYTHON_TARGETS; do |
fcddcf442e4f
packaging: add make target for linux wheels
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
16 |
"${PYBIN}/pip" wheel /io/ -w wheelhouse/ |
fcddcf442e4f
packaging: add make target for linux wheels
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
17 |
done |
fcddcf442e4f
packaging: add make target for linux wheels
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
18 |
|
fcddcf442e4f
packaging: add make target for linux wheels
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
19 |
# Bundle external shared libraries into the wheels with |
fcddcf442e4f
packaging: add make target for linux wheels
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
20 |
# auditwheel (https://github.com/pypa/auditwheel) repair. |
fcddcf442e4f
packaging: add make target for linux wheels
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
21 |
# It also fix the ABI tag on the wheel making it pip installable. |
fcddcf442e4f
packaging: add make target for linux wheels
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
22 |
for whl in wheelhouse/*.whl; do |
fcddcf442e4f
packaging: add make target for linux wheels
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
23 |
auditwheel repair "$whl" -w /src/wheelhouse/ |
fcddcf442e4f
packaging: add make target for linux wheels
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
24 |
done |
fcddcf442e4f
packaging: add make target for linux wheels
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
25 |
|
fcddcf442e4f
packaging: add make target for linux wheels
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
26 |
# Install packages and run the tests for all Python versions |
fcddcf442e4f
packaging: add make target for linux wheels
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
27 |
cd /io/tests/ |
fcddcf442e4f
packaging: add make target for linux wheels
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
28 |
|
fcddcf442e4f
packaging: add make target for linux wheels
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
29 |
for PYBIN in $PYTHON_TARGETS; do |
fcddcf442e4f
packaging: add make target for linux wheels
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
30 |
# Install mercurial wheel as root |
fcddcf442e4f
packaging: add make target for linux wheels
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
31 |
"${PYBIN}/pip" install mercurial --no-index -f /src/wheelhouse |
fcddcf442e4f
packaging: add make target for linux wheels
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
32 |
# But run tests as hgbuilder user (non-root) |
fcddcf442e4f
packaging: add make target for linux wheels
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
33 |
su hgbuilder -c "\"${PYBIN}/python\" /io/tests/run-tests.py --with-hg=\"${PYBIN}/hg\" --blacklist=/io/contrib/linux-wheel-centos5-blacklist" |
fcddcf442e4f
packaging: add make target for linux wheels
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
34 |
done |