summaryrefslogtreecommitdiff
path: root/ci/manylinux.sh
diff options
context:
space:
mode:
Diffstat (limited to 'ci/manylinux.sh')
-rwxr-xr-xci/manylinux.sh43
1 files changed, 43 insertions, 0 deletions
diff --git a/ci/manylinux.sh b/ci/manylinux.sh
new file mode 100755
index 00000000..06618111
--- /dev/null
+++ b/ci/manylinux.sh
@@ -0,0 +1,43 @@
+#!/bin/bash
+# From: https://github.com/pypa/python-manylinux-demo/blob/master/travis/build-wheels.sh
+# which is in the public domain.
+#
+# This is run inside a CentOS 5 virtual machine to build manylinux wheels:
+#
+# $ docker run -v `pwd`:/io quay.io/pypa/manylinux1_x86_64 /io/ci/build_manylinux.sh
+#
+
+set -e -x
+
+action=$1
+
+if [[ $action == "build" ]]; then
+ # Compile wheels
+ for PYBIN in /opt/python/*/bin; do
+ "$PYBIN/pip" install -r /io/requirements/wheel.pip
+ "$PYBIN/pip" wheel /io/ -w wheelhouse/
+ done
+
+ # Bundle external shared libraries into the wheels
+ for whl in wheelhouse/*.whl; do
+ auditwheel repair "$whl" -w /io/dist/
+ done
+
+elif [[ $action == "test" ]]; then
+ # Install packages and test
+ TOXBIN=/opt/python/cp27-cp27m/bin
+ "$TOXBIN/pip" install -r /io/requirements/ci.pip
+
+ for PYBIN in /opt/python/*/bin/; do
+ PYNAME=$("$PYBIN/python" -c "import sys; print('python{0[0]}.{0[1]}'.format(sys.version_info))")
+ TOXENV=$("$PYBIN/python" -c "import sys; print('py{0[0]}{0[1]}'.format(sys.version_info))")
+ ln -s "$PYBIN/$PYNAME" /usr/local/bin/$PYNAME
+ "$TOXBIN/tox" -e $TOXENV
+ rm -f /usr/local/bin/$PYNAME
+ #"${PYBIN}/pip" install python-manylinux-demo --no-index -f /io/dist
+ #(cd "$HOME"; "${PYBIN}/nosetests" pymanylinuxdemo)
+ done
+
+else
+ echo "Need an action to perform!"
+fi