Skip to content

Commit

Permalink
Merge pull request #106 from simelo/release-0.25.0
Browse files Browse the repository at this point in the history
Make dist targets . Deploy to Github Releases and PyPI
  • Loading branch information
olemis authored Jan 17, 2019
2 parents 3eae90e + 1e6a3c7 commit dcce7ce
Show file tree
Hide file tree
Showing 7 changed files with 100 additions and 56 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ __pycache__/
*.orig
Pyskycoin-*
eggs
wheelhouse/

*~

Expand Down
82 changes: 43 additions & 39 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -84,46 +80,54 @@ 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
# 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 ;
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
- ls dist/
after_failure:
- cat ./.tox/${TOXENV}/log/${TOXENV}-*.log
notifications:
email: false
webhooks: https://fathomless-fjord-24024.herokuapp.com/notify
before_deploy:
- echo "Generating distribution archives before deploy"
- make sdist
- make bdist_wheel
- if [ $TRAVIS_OS_NAME == "linux" && $TOXENV == "py37" ]; then make bdist_manylinux_amd64 ; fi
- ls dist
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"
# TODO: Upload manylinux wheels to PyPI
14 changes: 4 additions & 10 deletions .travis/build_wheels.sh
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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

12 changes: 12 additions & 0 deletions .travis/check_wheels.sh
Original file line number Diff line number Diff line change
@@ -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

17 changes: 11 additions & 6 deletions .travis/install-linux.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,27 @@

set -ev

# Environment checks
if [ "$PIP" == "" ]; then
export PIP='python -m pip'
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 && \
Expand Down
28 changes: 28 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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
Expand Down Expand Up @@ -76,5 +78,31 @@ 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

# 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
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)

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}'
2 changes: 1 addition & 1 deletion skycoin/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
__version__ = "0.25.0"
__version__ = "0.25.0.post1"
init_error = None

def _print2stderr(msg):
Expand Down

0 comments on commit dcce7ce

Please sign in to comment.