From cdbf6442d0bb261c1026627c5ab894d0e20d3762 Mon Sep 17 00:00:00 2001 From: Olemis Lang Date: Wed, 16 Jan 2019 17:15:56 -0500 Subject: [PATCH 1/8] [ci] refs #104 - Install SWIG dependencies inside PyPA containers. x86_64 wheels generated correctly --- .travis.yml | 19 ++++++++++--------- .travis/build_wheels.sh | 8 ++++---- .travis/install-linux.sh | 30 ++++++++++++++++++++---------- 3 files changed, 34 insertions(+), 23 deletions(-) diff --git a/.travis.yml b/.travis.yml index f8f48563..e5e3c81f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -84,21 +84,22 @@ install: - eval "$(gimme 1.10)" before_script: # Install PyPA Docker images for building multilinux wheels -- if [ "$PYPI_DEPLOY" = "true" ]; then docker pull quay.io/pypa/manylinux1_x86_64 ; fi -- if [ "$PYPI_DEPLOY" = "true" ]; then docker pull quay.io/pypa/manylinux1_i686 ; fi +- if [ "$PYPI_DEPLOY" == "true" ]; then docker pull quay.io/pypa/manylinux1_x86_64 ; fi +- if [ "$PYPI_DEPLOY" == "true" ]; then docker pull quay.io/pypa/manylinux1_i686 ; fi script: # Test PySkycoin - make test-ci - mkdir -p dist -- if [ "$PYPI_DEPLOY" = "true" ]; then - docker run --rm -v `pwd`:/io quay.io/pypa/manylinux1_x86_64 /io/travis/build-wheels.sh ; +- if [ "$PYPI_DEPLOY" == "true" ]; then + docker run --rm -t -v `pwd`:/io quay.io/pypa/manylinux1_x86_64 /io/.travis/build_wheels.sh ls wheelhouse/ ; fi -- if [ "$PYPI_DEPLOY" = "true" ]; then - docker run --rm -v `pwd`:/io quay.io/pypa/manylinux1_i686 linux32 /io/travis/build-wheels.sh ; - ls wheelhouse/ ; - cp wheelhouse/* dist/ ; - fi +# FIXME: Support in libskycoin for compiling 32 bit binaries +#- if [ "$PYPI_DEPLOY" == "true" ]; then +# docker run --rm -t -v `pwd`:/io quay.io/pypa/manylinux1_i686 linux32 /io/.travis/build_wheels.sh +# ls wheelhouse/ ; +# cp wheelhouse/* dist/ ; +# fi - ls dist/ after_failure: - cat ./.tox/${TOXENV}/log/${TOXENV}-*.log diff --git a/.travis/build_wheels.sh b/.travis/build_wheels.sh index 9285091c..6bd51507 100755 --- a/.travis/build_wheels.sh +++ b/.travis/build_wheels.sh @@ -1,10 +1,10 @@ #!/bin/bash set -e -x -# Install a system package required by our library -yum install -y atlas-devel - -sh /io/.travis/install_linux.sh +# Install system packages required by our library +yum install -y sudo pcre pcre-devel +mkdir -p "$HOME/bin" +PIP=/opt/python/cp27-cp27m/bin/pip source /io/.travis/install-linux.sh eval "$(gimme 1.10)" # Compile wheels diff --git a/.travis/install-linux.sh b/.travis/install-linux.sh index 767117bc..56ddd5df 100644 --- a/.travis/install-linux.sh +++ b/.travis/install-linux.sh @@ -2,27 +2,37 @@ set -ev +# Environment checks +if "PIP" == ""; then + PIP='python -m pip' +fi +if "which sudo" == ""; then + SUDO='' +else + SUDO='sudo' +fi + # Repository root path REPO_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )/.." echo "Install Linux packages from $REPO_ROOT" # Install gimme -curl -sL -o ~/bin/gimme https://raw.githubusercontent.com/travis-ci/gimme/master/gimme -chmod +x ~/bin/gimme +curl -sL -o "$HOME/bin/gimme" https://raw.githubusercontent.com/travis-ci/gimme/master/gimme +chmod +x "$HOME/bin/gimme" -#Install Python libraries -python -m pip install --upgrade pip setuptools tox-travis -python -m pip install -r "$REPO_ROOT/requirements.dev.txt" +# Install Python libraries +$PIP install --upgrade pip setuptools tox-travis +$PIP install -r "$REPO_ROOT/requirements.dev.txt" # Compile SWIG mkdir swig_build && \ cd swig_build && \ - wget http://prdownloads.sourceforge.net/swig/swig-3.0.12.tar.gz && \ + curl -sL -o "swig-3.0.12.tar.gz" http://prdownloads.sourceforge.net/swig/swig-3.0.12.tar.gz && \ tar -zxf swig-3.0.12.tar.gz && \ cd swig-3.0.12 && \ - sudo ./configure --prefix=/usr && \ - sudo make && \ - sudo make install && \ + $SUDO ./configure --prefix=/usr && \ + $SUDO make && \ + $SUDO make install && \ cd ../../ && \ - sudo rm -rf swig_build + $SUDO rm -rf swig_build From c7ba0ca8b4c5be926d4ac43ee6c0fe40739ac4be Mon Sep 17 00:00:00 2001 From: Olemis Lang Date: Wed, 16 Jan 2019 18:06:56 -0500 Subject: [PATCH 2/8] refs #85 - Bump version number to 0.25.0.post1 --- skycoin/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/skycoin/__init__.py b/skycoin/__init__.py index 3fc52b7f..ce572cdd 100644 --- a/skycoin/__init__.py +++ b/skycoin/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.25.0" +__version__ = "0.25.0.post1" init_error = None def _print2stderr(msg): From 44bc5cb83b1fac9a3bd0c2d5c6d307de530d6745 Mon Sep 17 00:00:00 2001 From: Olemis Lang Date: Wed, 16 Jan 2019 18:09:22 -0500 Subject: [PATCH 3/8] [ci] refs #85 - All branches may deploy. Deploy MacOS binary wheels onto PyPI --- .gitignore | 1 + .travis.yml | 62 ++++++++++++++++++++++++++++++++++------------------- 2 files changed, 41 insertions(+), 22 deletions(-) diff --git a/.gitignore b/.gitignore index fdd61a27..e87c4f45 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ __pycache__/ *.orig Pyskycoin-* eggs +wheelhouse/ *~ diff --git a/.travis.yml b/.travis.yml index e5e3c81f..a1d7ee5e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -93,12 +93,13 @@ script: - if [ "$PYPI_DEPLOY" == "true" ]; then docker run --rm -t -v `pwd`:/io quay.io/pypa/manylinux1_x86_64 /io/.travis/build_wheels.sh ls wheelhouse/ ; + cp -v wheelhouse/* dist/ ; fi # FIXME: Support in libskycoin for compiling 32 bit binaries #- if [ "$PYPI_DEPLOY" == "true" ]; then # docker run --rm -t -v `pwd`:/io quay.io/pypa/manylinux1_i686 linux32 /io/.travis/build_wheels.sh # ls wheelhouse/ ; -# cp wheelhouse/* dist/ ; +# cp -v wheelhouse/* dist/ ; # fi - ls dist/ after_failure: @@ -106,25 +107,42 @@ after_failure: notifications: email: false webhooks: https://fathomless-fjord-24024.herokuapp.com/notify +before_deploy: +- python setup.py sdist bdist_wheel deploy: - matrix: - - provider: releases - api_key: - secure: kfY02m+bBVHJqwAoeJnLLPs2W7nis+YkfaU/Cb4IFsNlgjszHNDNZZikLdiO7TDw3XDLIPTHF0yesoeobA8oLiD8D1Z9n6eZg6fuQPBeOA2qOvBXasJNN+fZwJztSlr8yyVUp7OX+rWT0TNbDaqRI8MTJseKX7x8yIDi9Cxnkh6RIoPbvrdpmEvwlYf76ukC7Caw1IjBz/0QSML5C9U3hmkSNMGGzQh/oN4VexclDTP1Ze3DRXxXS8cSZMP8FaDSRt90AFErTJYO2hn4U3zCqL8eW6q/caL30hxdXN1xZuEwik3OfTiqB/86DOAVqJJAcpHCp1B/1JooSQ8SA0nsqTiw4CAAyR4a3cQcsbAM54kmbnTLj6GZg7OFn6MeYlsVpfx1E606uoHQjglHJZa0qPmwvEQE70gW9zxH3KGhiYLDba/ONtZWe0sc228jsrcqxQYvBfpRvizjpuEFPW2Bn6d8+C2mJzHWceAoUfvy1mhfZzYrrQJArewD55RFryqdjWpJg9RjF095rVWYCxq1Q90Xz1Ogx7f8y07MK747wYrgAiTcXnoX+pu6PzWYmK17y1N/9FamnUzmFUhv6xam7xFCAlR2yBvHnpJabgUjrcHnL3Ik7VQvZhPpHmf2M+xChZQgqOrcAAPz0mpUI4x1x1uudjas+WEO1fJBu01m6Xg= - file: dist/* - skip_cleanup: true - on: - tags: true - repo: skycoin/pyskycoin - # FIXME: Upload manylinux wheels - - provider: pypi - distributions: sdist - skip_cleanup: true - skip_existing: true - user: - secure: qPng5d9MuWToDdnABpvUvKspQJ2xj+evgBQOMxpCpXKkrp3EcJtT7VA4bi3k3RlShiKMw71+gqqpGFOO8QshRRf0qldDSzwYefUxe0/dqwuKcb77tY4yUZJtYi3MX/jmWUW0kLSedNGXv42ye4TbFxnd0yCCNVrffbIclcIapzqAECB2a61btcrLTWqaqsO5BYitEQ9VfRtv20Kx4wSjxECNGr354kYV95d74g6zF0OzxMcxha2VB4MYKQ308gX1ISF11ZuaW35ZRa81dT8/fWa9j7/xhpXVBZ6craCBtAFc3q5AcQL0FlYmhM1XFgDanhv3Uxw75mhjapyMedQFpmRT+2ej4v+Le9Etf8rxeebZRJBch0o/zw8ZRUltKSeN8comWSCwaS1NQVauhb9D0cQ7R+0ULkLkBw3E4Os+9wLWNPppw4p7v4m5SpCcD5AVeBuUFd4F9y4LNfjWGrEMfyGjcSyZqZts0xoZ3L6ta05n1vr84ah8DpQRHrMl6PeuH0dfbYRxnGEhBJcEfXZ2RmqC6EBdV1OBnWh91bUpltnwv/kG+aIhtgp/ZSQY1DukglJ2QDrXZZ0HI7TjXwYTJeScPuxsbPcluepfFrxU0K3dib8JyeJEQOfN1ioE6ln9TDGcDgTuYvBbA3ndjtqJZeWiUS7siyO9d7aE2kPZOSI= - password: - secure: Lek+1bI8jaYADO5b4oLTirI3xqdYktV/ihyGCraK+Glp/U6FwwlF3ttRpvdT9/YyVRgWEt/jePQxH+COW3WbKh54MZWCMlMKmWc4JTs6zHliAWXecAQSvPDWHjzO0F1iz839MRBfQdBUMh1g7BFi4nC886DS7ts7+p2XXGsWwtI+quOwvZ6bS0M6nMTecG8OtpYCkOAoGZI6JEoDXyIygPR5+TIWXO2QFt7KT+fsircOvDHzdA2YY/oexwUWwLLf7J0qnRm2AEx0dDjpFTCaOr6+VxdjD7F8qDoXePzVEvW7AG6k0Emx3Vuj9JiTgga8qX3ExHSXoomNhiJoOM30UbH00mdT5Fz+6HqYqFieijX/Li2fExqXXp6Za4VHMrwImrXoYQw4350F8b6QzF7E4WouBBysBZIkBEswp69783uU1lGcbU0wnyj8SN6rYIPO03MG1e5HO+Dd9avMtCMdGj3qsNlmfK0v3fAGjrYsStMQtrfOUZGTahrHPh7P3VPB4qmsJ7eNo+lFtLN0I2+ehoqMd3UH+qggdFdLQFGVMe0SWCUV9Aoyxo9vVqbnPzclsmWL44M6YRDIgOtochNiDINbdx/EA/L517GrpSDjZwvhrJkoCE7Wr9m5YcC+x8qQXCpQ4dcYAJ4C+okASAIwtjOai5dQB7TfHJfN5XzSLUI= - on: - tags: true - repo: skycoin/pyskycoin +- provider: releases + api_key: + secure: kfY02m+bBVHJqwAoeJnLLPs2W7nis+YkfaU/Cb4IFsNlgjszHNDNZZikLdiO7TDw3XDLIPTHF0yesoeobA8oLiD8D1Z9n6eZg6fuQPBeOA2qOvBXasJNN+fZwJztSlr8yyVUp7OX+rWT0TNbDaqRI8MTJseKX7x8yIDi9Cxnkh6RIoPbvrdpmEvwlYf76ukC7Caw1IjBz/0QSML5C9U3hmkSNMGGzQh/oN4VexclDTP1Ze3DRXxXS8cSZMP8FaDSRt90AFErTJYO2hn4U3zCqL8eW6q/caL30hxdXN1xZuEwik3OfTiqB/86DOAVqJJAcpHCp1B/1JooSQ8SA0nsqTiw4CAAyR4a3cQcsbAM54kmbnTLj6GZg7OFn6MeYlsVpfx1E606uoHQjglHJZa0qPmwvEQE70gW9zxH3KGhiYLDba/ONtZWe0sc228jsrcqxQYvBfpRvizjpuEFPW2Bn6d8+C2mJzHWceAoUfvy1mhfZzYrrQJArewD55RFryqdjWpJg9RjF095rVWYCxq1Q90Xz1Ogx7f8y07MK747wYrgAiTcXnoX+pu6PzWYmK17y1N/9FamnUzmFUhv6xam7xFCAlR2yBvHnpJabgUjrcHnL3Ik7VQvZhPpHmf2M+xChZQgqOrcAAPz0mpUI4x1x1uudjas+WEO1fJBu01m6Xg= + file: dist/* + skip_cleanup: true + skip_existing: true + on: + all_branches: true + tags: true + repo: skycoin/pyskycoin +- provider: pypi + distributions: sdist + skip_cleanup: true + skip_existing: true + user: + secure: qPng5d9MuWToDdnABpvUvKspQJ2xj+evgBQOMxpCpXKkrp3EcJtT7VA4bi3k3RlShiKMw71+gqqpGFOO8QshRRf0qldDSzwYefUxe0/dqwuKcb77tY4yUZJtYi3MX/jmWUW0kLSedNGXv42ye4TbFxnd0yCCNVrffbIclcIapzqAECB2a61btcrLTWqaqsO5BYitEQ9VfRtv20Kx4wSjxECNGr354kYV95d74g6zF0OzxMcxha2VB4MYKQ308gX1ISF11ZuaW35ZRa81dT8/fWa9j7/xhpXVBZ6craCBtAFc3q5AcQL0FlYmhM1XFgDanhv3Uxw75mhjapyMedQFpmRT+2ej4v+Le9Etf8rxeebZRJBch0o/zw8ZRUltKSeN8comWSCwaS1NQVauhb9D0cQ7R+0ULkLkBw3E4Os+9wLWNPppw4p7v4m5SpCcD5AVeBuUFd4F9y4LNfjWGrEMfyGjcSyZqZts0xoZ3L6ta05n1vr84ah8DpQRHrMl6PeuH0dfbYRxnGEhBJcEfXZ2RmqC6EBdV1OBnWh91bUpltnwv/kG+aIhtgp/ZSQY1DukglJ2QDrXZZ0HI7TjXwYTJeScPuxsbPcluepfFrxU0K3dib8JyeJEQOfN1ioE6ln9TDGcDgTuYvBbA3ndjtqJZeWiUS7siyO9d7aE2kPZOSI= + password: + secure: Lek+1bI8jaYADO5b4oLTirI3xqdYktV/ihyGCraK+Glp/U6FwwlF3ttRpvdT9/YyVRgWEt/jePQxH+COW3WbKh54MZWCMlMKmWc4JTs6zHliAWXecAQSvPDWHjzO0F1iz839MRBfQdBUMh1g7BFi4nC886DS7ts7+p2XXGsWwtI+quOwvZ6bS0M6nMTecG8OtpYCkOAoGZI6JEoDXyIygPR5+TIWXO2QFt7KT+fsircOvDHzdA2YY/oexwUWwLLf7J0qnRm2AEx0dDjpFTCaOr6+VxdjD7F8qDoXePzVEvW7AG6k0Emx3Vuj9JiTgga8qX3ExHSXoomNhiJoOM30UbH00mdT5Fz+6HqYqFieijX/Li2fExqXXp6Za4VHMrwImrXoYQw4350F8b6QzF7E4WouBBysBZIkBEswp69783uU1lGcbU0wnyj8SN6rYIPO03MG1e5HO+Dd9avMtCMdGj3qsNlmfK0v3fAGjrYsStMQtrfOUZGTahrHPh7P3VPB4qmsJ7eNo+lFtLN0I2+ehoqMd3UH+qggdFdLQFGVMe0SWCUV9Aoyxo9vVqbnPzclsmWL44M6YRDIgOtochNiDINbdx/EA/L517GrpSDjZwvhrJkoCE7Wr9m5YcC+x8qQXCpQ4dcYAJ4C+okASAIwtjOai5dQB7TfHJfN5XzSLUI= + on: + all_branches: true + tags: true + repo: skycoin/pyskycoin +- provider: pypi + distributions: bdist_wheel + skip_cleanup: true + skip_existing: true + user: + secure: qPng5d9MuWToDdnABpvUvKspQJ2xj+evgBQOMxpCpXKkrp3EcJtT7VA4bi3k3RlShiKMw71+gqqpGFOO8QshRRf0qldDSzwYefUxe0/dqwuKcb77tY4yUZJtYi3MX/jmWUW0kLSedNGXv42ye4TbFxnd0yCCNVrffbIclcIapzqAECB2a61btcrLTWqaqsO5BYitEQ9VfRtv20Kx4wSjxECNGr354kYV95d74g6zF0OzxMcxha2VB4MYKQ308gX1ISF11ZuaW35ZRa81dT8/fWa9j7/xhpXVBZ6craCBtAFc3q5AcQL0FlYmhM1XFgDanhv3Uxw75mhjapyMedQFpmRT+2ej4v+Le9Etf8rxeebZRJBch0o/zw8ZRUltKSeN8comWSCwaS1NQVauhb9D0cQ7R+0ULkLkBw3E4Os+9wLWNPppw4p7v4m5SpCcD5AVeBuUFd4F9y4LNfjWGrEMfyGjcSyZqZts0xoZ3L6ta05n1vr84ah8DpQRHrMl6PeuH0dfbYRxnGEhBJcEfXZ2RmqC6EBdV1OBnWh91bUpltnwv/kG+aIhtgp/ZSQY1DukglJ2QDrXZZ0HI7TjXwYTJeScPuxsbPcluepfFrxU0K3dib8JyeJEQOfN1ioE6ln9TDGcDgTuYvBbA3ndjtqJZeWiUS7siyO9d7aE2kPZOSI= + password: + secure: Lek+1bI8jaYADO5b4oLTirI3xqdYktV/ihyGCraK+Glp/U6FwwlF3ttRpvdT9/YyVRgWEt/jePQxH+COW3WbKh54MZWCMlMKmWc4JTs6zHliAWXecAQSvPDWHjzO0F1iz839MRBfQdBUMh1g7BFi4nC886DS7ts7+p2XXGsWwtI+quOwvZ6bS0M6nMTecG8OtpYCkOAoGZI6JEoDXyIygPR5+TIWXO2QFt7KT+fsircOvDHzdA2YY/oexwUWwLLf7J0qnRm2AEx0dDjpFTCaOr6+VxdjD7F8qDoXePzVEvW7AG6k0Emx3Vuj9JiTgga8qX3ExHSXoomNhiJoOM30UbH00mdT5Fz+6HqYqFieijX/Li2fExqXXp6Za4VHMrwImrXoYQw4350F8b6QzF7E4WouBBysBZIkBEswp69783uU1lGcbU0wnyj8SN6rYIPO03MG1e5HO+Dd9avMtCMdGj3qsNlmfK0v3fAGjrYsStMQtrfOUZGTahrHPh7P3VPB4qmsJ7eNo+lFtLN0I2+ehoqMd3UH+qggdFdLQFGVMe0SWCUV9Aoyxo9vVqbnPzclsmWL44M6YRDIgOtochNiDINbdx/EA/L517GrpSDjZwvhrJkoCE7Wr9m5YcC+x8qQXCpQ4dcYAJ4C+okASAIwtjOai5dQB7TfHJfN5XzSLUI= + on: + all_branches: true + tags: true + repo: skycoin/pyskycoin + condition: $TRAVIS_OS_NAME = "osx" +# FIXME: Upload manylinux wheels From d698305f5aa465c1964fe17a16a9529394a56612 Mon Sep 17 00:00:00 2001 From: Olemis Lang Date: Wed, 16 Jan 2019 18:18:55 -0500 Subject: [PATCH 4/8] [ci] refs #85 - Fix PIP check when installing on GNU/Linux --- .travis/install-linux.sh | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/.travis/install-linux.sh b/.travis/install-linux.sh index 56ddd5df..4871ee86 100644 --- a/.travis/install-linux.sh +++ b/.travis/install-linux.sh @@ -3,13 +3,8 @@ set -ev # Environment checks -if "PIP" == ""; then - PIP='python -m pip' -fi -if "which sudo" == ""; then - SUDO='' -else - SUDO='sudo' +if [ $PIP == "" ]; then + export PIP='python -m pip' fi # Repository root path @@ -30,9 +25,9 @@ mkdir swig_build && \ curl -sL -o "swig-3.0.12.tar.gz" http://prdownloads.sourceforge.net/swig/swig-3.0.12.tar.gz && \ tar -zxf swig-3.0.12.tar.gz && \ cd swig-3.0.12 && \ - $SUDO ./configure --prefix=/usr && \ - $SUDO make && \ - $SUDO make install && \ + sudo ./configure --prefix=/usr && \ + sudo make && \ + sudo make install && \ cd ../../ && \ - $SUDO rm -rf swig_build + sudo rm -rf swig_build From c7f081886a31c118c82abd66ee9247024c0ee54c Mon Sep 17 00:00:00 2001 From: Olemis Lang Date: Wed, 16 Jan 2019 18:53:54 -0500 Subject: [PATCH 5/8] [ci] refs #85 #104 - Add make dist targets. Run them on Travis before_deploy --- .travis.yml | 25 +++++-------------------- Makefile | 25 +++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 20 deletions(-) diff --git a/.travis.yml b/.travis.yml index a1d7ee5e..603e9153 100644 --- a/.travis.yml +++ b/.travis.yml @@ -60,10 +60,6 @@ matrix: - PYTHON=3.7.1 - TOXENV=py37 before_install: -- if [ "$TRAVIS_OS_NAME" == 'linux' && "$TOXENV" == 'py37' && "$TRAVIS_TAG" != '' ]; then - export PYPI_DEPLOY=true ; - echo "Deploying to PYPI" ; - fi - cd gopath/src/github.com/skycoin/skycoin && git checkout v0.25.0 && cd ${TRAVIS_BUILD_DIR} - if [[ "$TRAVIS_OS_NAME" == 'linux' ]]; then bash ./.travis/install-linux.sh ; fi - if [[ "$TRAVIS_OS_NAME" == 'osx' ]]; then bash ./.travis/install-osx.sh; fi @@ -84,23 +80,9 @@ install: - eval "$(gimme 1.10)" before_script: # Install PyPA Docker images for building multilinux wheels -- if [ "$PYPI_DEPLOY" == "true" ]; then docker pull quay.io/pypa/manylinux1_x86_64 ; fi -- if [ "$PYPI_DEPLOY" == "true" ]; then docker pull quay.io/pypa/manylinux1_i686 ; fi script: # Test PySkycoin - make test-ci -- mkdir -p dist -- if [ "$PYPI_DEPLOY" == "true" ]; then - docker run --rm -t -v `pwd`:/io quay.io/pypa/manylinux1_x86_64 /io/.travis/build_wheels.sh - ls wheelhouse/ ; - cp -v wheelhouse/* dist/ ; - fi -# FIXME: Support in libskycoin for compiling 32 bit binaries -#- if [ "$PYPI_DEPLOY" == "true" ]; then -# docker run --rm -t -v `pwd`:/io quay.io/pypa/manylinux1_i686 linux32 /io/.travis/build_wheels.sh -# ls wheelhouse/ ; -# cp -v wheelhouse/* dist/ ; -# fi - ls dist/ after_failure: - cat ./.tox/${TOXENV}/log/${TOXENV}-*.log @@ -108,7 +90,10 @@ notifications: email: false webhooks: https://fathomless-fjord-24024.herokuapp.com/notify before_deploy: -- python setup.py sdist bdist_wheel +- echo "Generating distribution archives before deploy" +- make sdist +- make bdist_wheel +- if [ $TRAVIS_OS_NAME == "linux" && $TOXENV == "py37" ]; then make bdist_manylinux_amd64 ; fi deploy: - provider: releases api_key: @@ -145,4 +130,4 @@ deploy: tags: true repo: skycoin/pyskycoin condition: $TRAVIS_OS_NAME = "osx" -# FIXME: Upload manylinux wheels +# TODO: Upload manylinux wheels to PyPI diff --git a/Makefile b/Makefile index 0a673de0..d608e4ff 100644 --- a/Makefile +++ b/Makefile @@ -15,6 +15,7 @@ BUILDLIBC_DIR = $(SKYBUILD_DIR)/libskycoin LIBC_DIR = $(SKYCOIN_DIR)/lib/cgo LIBSWIG_DIR = swig BUILD_DIR = build +DIST_DIR = dist BIN_DIR = $(SKYCOIN_DIR)/bin INCLUDE_DIR = $(SKYCOIN_DIR)/include FULL_PATH_LIB = $(PWD)/$(BUILDLIBC_DIR) @@ -33,6 +34,7 @@ endif configure: ## Configure build environment mkdir -p $(BUILD_DIR)/usr/tmp $(BUILD_DIR)/usr/lib $(BUILD_DIR)/usr/include mkdir -p $(BUILDLIBC_DIR) $(BIN_DIR) $(INCLUDE_DIR) + mkdir -p $(DIST_DIR) $(BUILDLIBC_DIR)/libskycoin.a: $(LIB_FILES) $(SRC_FILES) $(HEADER_FILES) rm -f $(BUILDLIBC_DIR)/libskycoin.a @@ -76,5 +78,28 @@ test-ci: ## Run tests on (Travis) CI build test: build-libc build-swig develop ## Run project test suite $(PYTHON_BIN) setup.py test +sdist: ## Create source distribution archive + $(PYTHON_BIN) setup.py sdist --formats=gztar + +bdist_wheel: ## Create architecture-specific binary wheel distribution archive + $(PYTHON_BIN) setup.py bdist_wheel + +bdist_manylinux: bdist_manylinux_amd64 bdist_manylinux_i686 ## Create multilinux binary wheel distribution archives + +bdist_manylinux_amd64: ## Create 64 bits multilinux binary wheel distribution archives + docker pull quay.io/pypa/manylinux1_x86_64 + docker run --rm -t -v $(PWD):/io quay.io/pypa/manylinux1_x86_64 /io/.travis/build_wheels.sh + ls wheelhouse/ + cp -v wheelhouse/* $(DIST_DIR) + +bdist_manylinux_i686: ## Create 32 bits multilinux binary wheel distribution archives + docker pull quay.io/pypa/manylinux1_i686 + docker run --rm -t -v $(PWD):/io quay.io/pypa/manylinux1_i686 linux32 /io/.travis/build_wheels.sh + ls wheelhouse/ + cp -v wheelhouse/* $(DIST_DIR) + +# FIXME: After libskycoin 32-bits binaries bdist_manylinux_amd64 => bdist_manylinux +dist: sdist bdist_wheel bdist_manylinux_amd64 ## Create distribution archives + help: ## List available commands @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' From 926a7038a9092c299c70931893fe37c986911f88 Mon Sep 17 00:00:00 2001 From: Olemis Lang Date: Wed, 16 Jan 2019 20:54:18 -0500 Subject: [PATCH 6/8] [ci] refs #104 - Add make check-dist target --- .travis/build_wheels.sh | 6 ------ .travis/check_wheels.sh | 12 ++++++++++++ Makefile | 7 +++++-- 3 files changed, 17 insertions(+), 8 deletions(-) create mode 100644 .travis/check_wheels.sh diff --git a/.travis/build_wheels.sh b/.travis/build_wheels.sh index 6bd51507..4b76f02e 100755 --- a/.travis/build_wheels.sh +++ b/.travis/build_wheels.sh @@ -18,9 +18,3 @@ for whl in wheelhouse/*.whl; do auditwheel repair "$whl" -w /io/wheelhouse/ done -# Install packages and test -for PYBIN in /opt/python/*/bin/; do - "${PYBIN}/pip" install pyskycoin --no-index -f /io/wheelhouse - (cd /io ; "${PYBIN}/python" -m pytest tests --showlocals ) -done - diff --git a/.travis/check_wheels.sh b/.travis/check_wheels.sh new file mode 100644 index 00000000..d34f9847 --- /dev/null +++ b/.travis/check_wheels.sh @@ -0,0 +1,12 @@ + +#!/bin/bash +set -e -x + +# Code that follows assumes that wheels have been generated by build_wheels.sh + +# Install packages and test +for PYBIN in /opt/python/*/bin/; do + "${PYBIN}/pip" install pyskycoin --no-index -f /io/wheelhouse + (cd /io ; "${PYBIN}/python" -m pytest --showlocals tests ) +done + diff --git a/Makefile b/Makefile index d608e4ff..4e187086 100644 --- a/Makefile +++ b/Makefile @@ -84,7 +84,8 @@ sdist: ## Create source distribution archive bdist_wheel: ## Create architecture-specific binary wheel distribution archive $(PYTHON_BIN) setup.py bdist_wheel -bdist_manylinux: bdist_manylinux_amd64 bdist_manylinux_i686 ## Create multilinux binary wheel distribution archives +# FIXME: After libskycoin 32-bits binaries add bdist_manylinux_i686 +bdist_manylinux: bdist_manylinux_amd64 ## Create multilinux binary wheel distribution archives bdist_manylinux_amd64: ## Create 64 bits multilinux binary wheel distribution archives docker pull quay.io/pypa/manylinux1_x86_64 @@ -98,8 +99,10 @@ bdist_manylinux_i686: ## Create 32 bits multilinux binary wheel distribution arc ls wheelhouse/ cp -v wheelhouse/* $(DIST_DIR) -# FIXME: After libskycoin 32-bits binaries bdist_manylinux_amd64 => bdist_manylinux dist: sdist bdist_wheel bdist_manylinux_amd64 ## Create distribution archives +check-dist: dist ## Perform self-tests upon distributions archives + docker run --rm -t -v $(PWD):/io quay.io/pypa/manylinux1_i686 linux32 /io/.travis/check_wheels.sh + help: ## List available commands @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' From 77f4cfa2bfc7e04dc0deda8fdc09b4541a407d67 Mon Sep 17 00:00:00 2001 From: Olemis Lang Date: Wed, 16 Jan 2019 21:14:22 -0500 Subject: [PATCH 7/8] [ci] refs #85 - Fix minor typos in install-linux.sh --- .travis/install-linux.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis/install-linux.sh b/.travis/install-linux.sh index 4871ee86..1cb68edf 100644 --- a/.travis/install-linux.sh +++ b/.travis/install-linux.sh @@ -3,7 +3,7 @@ set -ev # Environment checks -if [ $PIP == "" ]; then +if [ "$PIP" == "" ]; then export PIP='python -m pip' fi From 1e6a3c73fcf0070d0db2983a46afcb326dcbd8af Mon Sep 17 00:00:00 2001 From: Olemis Lang Date: Wed, 16 Jan 2019 21:28:25 -0500 Subject: [PATCH 8/8] [ci] refs #104 - ls dist/ at the end of Travis after_deploy stage --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 603e9153..c11ca914 100644 --- a/.travis.yml +++ b/.travis.yml @@ -81,9 +81,8 @@ install: before_script: # Install PyPA Docker images for building multilinux wheels script: - # Test PySkycoin +# Test PySkycoin - make test-ci -- ls dist/ after_failure: - cat ./.tox/${TOXENV}/log/${TOXENV}-*.log notifications: @@ -94,6 +93,7 @@ before_deploy: - make sdist - make bdist_wheel - if [ $TRAVIS_OS_NAME == "linux" && $TOXENV == "py37" ]; then make bdist_manylinux_amd64 ; fi +- ls dist deploy: - provider: releases api_key: