annotate contrib/build-linux-wheels.sh @ 37775:03d7f885d5f2

revsetlang: do not pass in non-bytes to parse() Since parse() isn't a simple function, we shouldn't expect it would raise TypeError or ValueError for invalid inputs. Before, TypeError was raised at 'if pos != len(spec)', which was quite late to report an error. This patch also makes tokenize() detect invalid object before converting it to a py3-safe bytes. Spotted while adding the 'revset(...)' hack to _parsewith().
author Yuya Nishihara <yuya@tcha.org>
date Tue, 17 Apr 2018 21:59:58 +0900
parents 637267114513
children
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
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