annotate contrib/build-linux-wheels.sh @ 32544:e9f456183402

doc: port check-seclevel.py to be Python 2/3 portable
author Augie Fackler <raf@durin42.com>
date Sun, 28 May 2017 15:51:26 -0400
parents fcddcf442e4f
children 637267114513
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
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
fcddcf442e4f packaging: add make target for linux wheels
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
6 PYTHON_TARGETS=$(ls -d /opt/python/cp2*/bin)
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