contrib/packaging/build-linux-wheels.sh
author Pulkit Goyal <pulkit@yandex-team.ru>
Fri, 28 Sep 2018 19:18:17 +0300
changeset 39961 ad9ca365738b
parent 38011 6f5b4ceea95b
child 52244 4b9cf9924cd7
permissions -rwxr-xr-x
narrow: factor out logic to create cg while widening into separate fn This patch takes out the logic which generates a changegroup for widening a narrow clone when ellipses are disabled. This is done because future patches will introduce a narrow_widen() wireprotocol command which will send a bundle2 with changegroup and will use this function. The new function for now returns just the changegroup for compatibility with existing code, but in future patches, when we establish a wireprotocol command and call this function from there, this will return the required bundle2. Differential Revision: https://phab.mercurial-scm.org/D4786
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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)
38011
6f5b4ceea95b packaging: move linux-wheel-centos5-blacklist to contrib/packaging/
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38010
diff changeset
    33
    su hgbuilder -c "\"${PYBIN}/python\" /io/tests/run-tests.py --with-hg=\"${PYBIN}/hg\" --blacklist=/io/contrib/packaging/linux-wheel-centos5-blacklist"
32080
fcddcf442e4f packaging: add make target for linux wheels
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    34
done