diff options
author | Elvis Pranskevichus <elvis@magic.io> | 2018-03-30 19:47:52 -0400 |
---|---|---|
committer | Elvis Pranskevichus <elvis@magic.io> | 2018-03-30 20:50:17 -0400 |
commit | a1b19e1d10896f3ac2ce0b97c2bf24e0c1c4520f (patch) | |
tree | 283ca8f24adc74d1092cf24b7bd66174a0014b51 /.ci/travis-build-wheels.sh | |
parent | 0e715340a78863d973302981ab98b232d6f51735 (diff) | |
download | immutables-a1b19e1d10896f3ac2ce0b97c2bf24e0c1c4520f.tar.gz immutables-a1b19e1d10896f3ac2ce0b97c2bf24e0c1c4520f.zip |
CI integration
Diffstat (limited to '.ci/travis-build-wheels.sh')
-rwxr-xr-x | .ci/travis-build-wheels.sh | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/.ci/travis-build-wheels.sh b/.ci/travis-build-wheels.sh new file mode 100755 index 0000000..92771bd --- /dev/null +++ b/.ci/travis-build-wheels.sh @@ -0,0 +1,73 @@ +#!/bin/bash + +set -e -x + + +if [[ "${TRAVIS_BRANCH}" != "releases" || "${BUILD}" != *wheels* ]]; then + # Not a release + exit 0 +fi + + +if [ "${TRAVIS_OS_NAME}" == "osx" ]; then + PYENV_ROOT="$HOME/.pyenv" + PATH="$PYENV_ROOT/bin:$PATH" + eval "$(pyenv init -)" +fi + +PACKAGE_VERSION=$(python ".ci/package-version.py") +PYPI_VERSION=$(python ".ci/pypi-check.py" "${PYMODULE}") + +if [ "${PACKAGE_VERSION}" == "${PYPI_VERSION}" ]; then + echo "${PYMODULE}-${PACKAGE_VERSION} is already published on PyPI" + exit 1 +fi + + +pushd $(dirname $0) > /dev/null +_root=$(dirname $(pwd -P)) +popd > /dev/null + + +_upload_wheels() { + python "${_root}/.ci/s3-upload.py" "${_root}/dist"/*.whl + sudo rm -rf "${_root}/dist"/*.whl +} + + +if [ "${TRAVIS_OS_NAME}" == "linux" ]; then + for pyver in ${RELEASE_PYTHON_VERSIONS}; do + ML_PYTHON_VERSION=$(python3 -c \ + "print('cp{maj}{min}-cp{maj}{min}m'.format( \ + maj='${pyver}'.split('.')[0], \ + min='${pyver}'.split('.')[1]))") + + for arch in x86_64 i686; do + ML_IMAGE="quay.io/pypa/manylinux1_${arch}" + docker pull "${ML_IMAGE}" + docker run --rm \ + -v "${_root}":/io \ + -e "PYMODULE=${PYMODULE}" \ + -e "PYTHON_VERSION=${ML_PYTHON_VERSION}" \ + "${ML_IMAGE}" /io/.ci/build-manylinux-wheels.sh + + _upload_wheels + done + done + +elif [ "${TRAVIS_OS_NAME}" == "osx" ]; then + export PGINSTALLATION="/usr/local/opt/postgresql@${PGVERSION}/bin" + + make clean && make -C "${_root}" + pip wheel "${_root}" -w "${_root}/dist/" + + pip install ${PYMODULE} --no-index -f "file:///${_root}/dist" + pushd / >/dev/null + make -C "${_root}" testinstalled + popd >/dev/null + + _upload_wheels + +else + echo "Cannot build on ${TRAVIS_OS_NAME}." +fi |