Skip to content

Commit dcce7ce

Browse files
authored
Merge pull request #106 from simelo/release-0.25.0
Make dist targets . Deploy to Github Releases and PyPI
2 parents 3eae90e + 1e6a3c7 commit dcce7ce

File tree

7 files changed

+100
-56
lines changed

7 files changed

+100
-56
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ __pycache__/
1212
*.orig
1313
Pyskycoin-*
1414
eggs
15+
wheelhouse/
1516

1617
*~
1718

.travis.yml

+43-39
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,6 @@ matrix:
6060
- PYTHON=3.7.1
6161
- TOXENV=py37
6262
before_install:
63-
- if [ "$TRAVIS_OS_NAME" == 'linux' && "$TOXENV" == 'py37' && "$TRAVIS_TAG" != '' ]; then
64-
export PYPI_DEPLOY=true ;
65-
echo "Deploying to PYPI" ;
66-
fi
6763
- cd gopath/src/github.com/skycoin/skycoin && git checkout v0.25.0 && cd ${TRAVIS_BUILD_DIR}
6864
- if [[ "$TRAVIS_OS_NAME" == 'linux' ]]; then bash ./.travis/install-linux.sh ; fi
6965
- if [[ "$TRAVIS_OS_NAME" == 'osx' ]]; then bash ./.travis/install-osx.sh; fi
@@ -84,46 +80,54 @@ install:
8480
- eval "$(gimme 1.10)"
8581
before_script:
8682
# Install PyPA Docker images for building multilinux wheels
87-
- if [ "$PYPI_DEPLOY" = "true" ]; then docker pull quay.io/pypa/manylinux1_x86_64 ; fi
88-
- if [ "$PYPI_DEPLOY" = "true" ]; then docker pull quay.io/pypa/manylinux1_i686 ; fi
8983
script:
90-
# Test PySkycoin
84+
# Test PySkycoin
9185
- make test-ci
92-
- mkdir -p dist
93-
- if [ "$PYPI_DEPLOY" = "true" ]; then
94-
docker run --rm -v `pwd`:/io quay.io/pypa/manylinux1_x86_64 /io/travis/build-wheels.sh ;
95-
ls wheelhouse/ ;
96-
fi
97-
- if [ "$PYPI_DEPLOY" = "true" ]; then
98-
docker run --rm -v `pwd`:/io quay.io/pypa/manylinux1_i686 linux32 /io/travis/build-wheels.sh ;
99-
ls wheelhouse/ ;
100-
cp wheelhouse/* dist/ ;
101-
fi
102-
- ls dist/
10386
after_failure:
10487
- cat ./.tox/${TOXENV}/log/${TOXENV}-*.log
10588
notifications:
10689
email: false
10790
webhooks: https://fathomless-fjord-24024.herokuapp.com/notify
91+
before_deploy:
92+
- echo "Generating distribution archives before deploy"
93+
- make sdist
94+
- make bdist_wheel
95+
- if [ $TRAVIS_OS_NAME == "linux" && $TOXENV == "py37" ]; then make bdist_manylinux_amd64 ; fi
96+
- ls dist
10897
deploy:
109-
matrix:
110-
- provider: releases
111-
api_key:
112-
secure: kfY02m+bBVHJqwAoeJnLLPs2W7nis+YkfaU/Cb4IFsNlgjszHNDNZZikLdiO7TDw3XDLIPTHF0yesoeobA8oLiD8D1Z9n6eZg6fuQPBeOA2qOvBXasJNN+fZwJztSlr8yyVUp7OX+rWT0TNbDaqRI8MTJseKX7x8yIDi9Cxnkh6RIoPbvrdpmEvwlYf76ukC7Caw1IjBz/0QSML5C9U3hmkSNMGGzQh/oN4VexclDTP1Ze3DRXxXS8cSZMP8FaDSRt90AFErTJYO2hn4U3zCqL8eW6q/caL30hxdXN1xZuEwik3OfTiqB/86DOAVqJJAcpHCp1B/1JooSQ8SA0nsqTiw4CAAyR4a3cQcsbAM54kmbnTLj6GZg7OFn6MeYlsVpfx1E606uoHQjglHJZa0qPmwvEQE70gW9zxH3KGhiYLDba/ONtZWe0sc228jsrcqxQYvBfpRvizjpuEFPW2Bn6d8+C2mJzHWceAoUfvy1mhfZzYrrQJArewD55RFryqdjWpJg9RjF095rVWYCxq1Q90Xz1Ogx7f8y07MK747wYrgAiTcXnoX+pu6PzWYmK17y1N/9FamnUzmFUhv6xam7xFCAlR2yBvHnpJabgUjrcHnL3Ik7VQvZhPpHmf2M+xChZQgqOrcAAPz0mpUI4x1x1uudjas+WEO1fJBu01m6Xg=
113-
file: dist/*
114-
skip_cleanup: true
115-
on:
116-
tags: true
117-
repo: skycoin/pyskycoin
118-
# FIXME: Upload manylinux wheels
119-
- provider: pypi
120-
distributions: sdist
121-
skip_cleanup: true
122-
skip_existing: true
123-
user:
124-
secure: qPng5d9MuWToDdnABpvUvKspQJ2xj+evgBQOMxpCpXKkrp3EcJtT7VA4bi3k3RlShiKMw71+gqqpGFOO8QshRRf0qldDSzwYefUxe0/dqwuKcb77tY4yUZJtYi3MX/jmWUW0kLSedNGXv42ye4TbFxnd0yCCNVrffbIclcIapzqAECB2a61btcrLTWqaqsO5BYitEQ9VfRtv20Kx4wSjxECNGr354kYV95d74g6zF0OzxMcxha2VB4MYKQ308gX1ISF11ZuaW35ZRa81dT8/fWa9j7/xhpXVBZ6craCBtAFc3q5AcQL0FlYmhM1XFgDanhv3Uxw75mhjapyMedQFpmRT+2ej4v+Le9Etf8rxeebZRJBch0o/zw8ZRUltKSeN8comWSCwaS1NQVauhb9D0cQ7R+0ULkLkBw3E4Os+9wLWNPppw4p7v4m5SpCcD5AVeBuUFd4F9y4LNfjWGrEMfyGjcSyZqZts0xoZ3L6ta05n1vr84ah8DpQRHrMl6PeuH0dfbYRxnGEhBJcEfXZ2RmqC6EBdV1OBnWh91bUpltnwv/kG+aIhtgp/ZSQY1DukglJ2QDrXZZ0HI7TjXwYTJeScPuxsbPcluepfFrxU0K3dib8JyeJEQOfN1ioE6ln9TDGcDgTuYvBbA3ndjtqJZeWiUS7siyO9d7aE2kPZOSI=
125-
password:
126-
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=
127-
on:
128-
tags: true
129-
repo: skycoin/pyskycoin
98+
- provider: releases
99+
api_key:
100+
secure: kfY02m+bBVHJqwAoeJnLLPs2W7nis+YkfaU/Cb4IFsNlgjszHNDNZZikLdiO7TDw3XDLIPTHF0yesoeobA8oLiD8D1Z9n6eZg6fuQPBeOA2qOvBXasJNN+fZwJztSlr8yyVUp7OX+rWT0TNbDaqRI8MTJseKX7x8yIDi9Cxnkh6RIoPbvrdpmEvwlYf76ukC7Caw1IjBz/0QSML5C9U3hmkSNMGGzQh/oN4VexclDTP1Ze3DRXxXS8cSZMP8FaDSRt90AFErTJYO2hn4U3zCqL8eW6q/caL30hxdXN1xZuEwik3OfTiqB/86DOAVqJJAcpHCp1B/1JooSQ8SA0nsqTiw4CAAyR4a3cQcsbAM54kmbnTLj6GZg7OFn6MeYlsVpfx1E606uoHQjglHJZa0qPmwvEQE70gW9zxH3KGhiYLDba/ONtZWe0sc228jsrcqxQYvBfpRvizjpuEFPW2Bn6d8+C2mJzHWceAoUfvy1mhfZzYrrQJArewD55RFryqdjWpJg9RjF095rVWYCxq1Q90Xz1Ogx7f8y07MK747wYrgAiTcXnoX+pu6PzWYmK17y1N/9FamnUzmFUhv6xam7xFCAlR2yBvHnpJabgUjrcHnL3Ik7VQvZhPpHmf2M+xChZQgqOrcAAPz0mpUI4x1x1uudjas+WEO1fJBu01m6Xg=
101+
file: dist/*
102+
skip_cleanup: true
103+
skip_existing: true
104+
on:
105+
all_branches: true
106+
tags: true
107+
repo: skycoin/pyskycoin
108+
- provider: pypi
109+
distributions: sdist
110+
skip_cleanup: true
111+
skip_existing: true
112+
user:
113+
secure: qPng5d9MuWToDdnABpvUvKspQJ2xj+evgBQOMxpCpXKkrp3EcJtT7VA4bi3k3RlShiKMw71+gqqpGFOO8QshRRf0qldDSzwYefUxe0/dqwuKcb77tY4yUZJtYi3MX/jmWUW0kLSedNGXv42ye4TbFxnd0yCCNVrffbIclcIapzqAECB2a61btcrLTWqaqsO5BYitEQ9VfRtv20Kx4wSjxECNGr354kYV95d74g6zF0OzxMcxha2VB4MYKQ308gX1ISF11ZuaW35ZRa81dT8/fWa9j7/xhpXVBZ6craCBtAFc3q5AcQL0FlYmhM1XFgDanhv3Uxw75mhjapyMedQFpmRT+2ej4v+Le9Etf8rxeebZRJBch0o/zw8ZRUltKSeN8comWSCwaS1NQVauhb9D0cQ7R+0ULkLkBw3E4Os+9wLWNPppw4p7v4m5SpCcD5AVeBuUFd4F9y4LNfjWGrEMfyGjcSyZqZts0xoZ3L6ta05n1vr84ah8DpQRHrMl6PeuH0dfbYRxnGEhBJcEfXZ2RmqC6EBdV1OBnWh91bUpltnwv/kG+aIhtgp/ZSQY1DukglJ2QDrXZZ0HI7TjXwYTJeScPuxsbPcluepfFrxU0K3dib8JyeJEQOfN1ioE6ln9TDGcDgTuYvBbA3ndjtqJZeWiUS7siyO9d7aE2kPZOSI=
114+
password:
115+
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=
116+
on:
117+
all_branches: true
118+
tags: true
119+
repo: skycoin/pyskycoin
120+
- provider: pypi
121+
distributions: bdist_wheel
122+
skip_cleanup: true
123+
skip_existing: true
124+
user:
125+
secure: qPng5d9MuWToDdnABpvUvKspQJ2xj+evgBQOMxpCpXKkrp3EcJtT7VA4bi3k3RlShiKMw71+gqqpGFOO8QshRRf0qldDSzwYefUxe0/dqwuKcb77tY4yUZJtYi3MX/jmWUW0kLSedNGXv42ye4TbFxnd0yCCNVrffbIclcIapzqAECB2a61btcrLTWqaqsO5BYitEQ9VfRtv20Kx4wSjxECNGr354kYV95d74g6zF0OzxMcxha2VB4MYKQ308gX1ISF11ZuaW35ZRa81dT8/fWa9j7/xhpXVBZ6craCBtAFc3q5AcQL0FlYmhM1XFgDanhv3Uxw75mhjapyMedQFpmRT+2ej4v+Le9Etf8rxeebZRJBch0o/zw8ZRUltKSeN8comWSCwaS1NQVauhb9D0cQ7R+0ULkLkBw3E4Os+9wLWNPppw4p7v4m5SpCcD5AVeBuUFd4F9y4LNfjWGrEMfyGjcSyZqZts0xoZ3L6ta05n1vr84ah8DpQRHrMl6PeuH0dfbYRxnGEhBJcEfXZ2RmqC6EBdV1OBnWh91bUpltnwv/kG+aIhtgp/ZSQY1DukglJ2QDrXZZ0HI7TjXwYTJeScPuxsbPcluepfFrxU0K3dib8JyeJEQOfN1ioE6ln9TDGcDgTuYvBbA3ndjtqJZeWiUS7siyO9d7aE2kPZOSI=
126+
password:
127+
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=
128+
on:
129+
all_branches: true
130+
tags: true
131+
repo: skycoin/pyskycoin
132+
condition: $TRAVIS_OS_NAME = "osx"
133+
# TODO: Upload manylinux wheels to PyPI

.travis/build_wheels.sh

+4-10
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
#!/bin/bash
22
set -e -x
33

4-
# Install a system package required by our library
5-
yum install -y atlas-devel
6-
7-
sh /io/.travis/install_linux.sh
4+
# Install system packages required by our library
5+
yum install -y sudo pcre pcre-devel
6+
mkdir -p "$HOME/bin"
7+
PIP=/opt/python/cp27-cp27m/bin/pip source /io/.travis/install-linux.sh
88
eval "$(gimme 1.10)"
99

1010
# Compile wheels
@@ -18,9 +18,3 @@ for whl in wheelhouse/*.whl; do
1818
auditwheel repair "$whl" -w /io/wheelhouse/
1919
done
2020

21-
# Install packages and test
22-
for PYBIN in /opt/python/*/bin/; do
23-
"${PYBIN}/pip" install pyskycoin --no-index -f /io/wheelhouse
24-
(cd /io ; "${PYBIN}/python" -m pytest tests --showlocals )
25-
done
26-

.travis/check_wheels.sh

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
2+
#!/bin/bash
3+
set -e -x
4+
5+
# Code that follows assumes that wheels have been generated by build_wheels.sh
6+
7+
# Install packages and test
8+
for PYBIN in /opt/python/*/bin/; do
9+
"${PYBIN}/pip" install pyskycoin --no-index -f /io/wheelhouse
10+
(cd /io ; "${PYBIN}/python" -m pytest --showlocals tests )
11+
done
12+

.travis/install-linux.sh

+11-6
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,27 @@
22

33
set -ev
44

5+
# Environment checks
6+
if [ "$PIP" == "" ]; then
7+
export PIP='python -m pip'
8+
fi
9+
510
# Repository root path
611
REPO_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )/.."
712
echo "Install Linux packages from $REPO_ROOT"
813

914
# Install gimme
10-
curl -sL -o ~/bin/gimme https://raw.githubusercontent.com/travis-ci/gimme/master/gimme
11-
chmod +x ~/bin/gimme
15+
curl -sL -o "$HOME/bin/gimme" https://raw.githubusercontent.com/travis-ci/gimme/master/gimme
16+
chmod +x "$HOME/bin/gimme"
1217

13-
#Install Python libraries
14-
python -m pip install --upgrade pip setuptools tox-travis
15-
python -m pip install -r "$REPO_ROOT/requirements.dev.txt"
18+
# Install Python libraries
19+
$PIP install --upgrade pip setuptools tox-travis
20+
$PIP install -r "$REPO_ROOT/requirements.dev.txt"
1621

1722
# Compile SWIG
1823
mkdir swig_build && \
1924
cd swig_build && \
20-
wget http://prdownloads.sourceforge.net/swig/swig-3.0.12.tar.gz && \
25+
curl -sL -o "swig-3.0.12.tar.gz" http://prdownloads.sourceforge.net/swig/swig-3.0.12.tar.gz && \
2126
tar -zxf swig-3.0.12.tar.gz && \
2227
cd swig-3.0.12 && \
2328
sudo ./configure --prefix=/usr && \

Makefile

+28
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ BUILDLIBC_DIR = $(SKYBUILD_DIR)/libskycoin
1515
LIBC_DIR = $(SKYCOIN_DIR)/lib/cgo
1616
LIBSWIG_DIR = swig
1717
BUILD_DIR = build
18+
DIST_DIR = dist
1819
BIN_DIR = $(SKYCOIN_DIR)/bin
1920
INCLUDE_DIR = $(SKYCOIN_DIR)/include
2021
FULL_PATH_LIB = $(PWD)/$(BUILDLIBC_DIR)
@@ -33,6 +34,7 @@ endif
3334
configure: ## Configure build environment
3435
mkdir -p $(BUILD_DIR)/usr/tmp $(BUILD_DIR)/usr/lib $(BUILD_DIR)/usr/include
3536
mkdir -p $(BUILDLIBC_DIR) $(BIN_DIR) $(INCLUDE_DIR)
37+
mkdir -p $(DIST_DIR)
3638

3739
$(BUILDLIBC_DIR)/libskycoin.a: $(LIB_FILES) $(SRC_FILES) $(HEADER_FILES)
3840
rm -f $(BUILDLIBC_DIR)/libskycoin.a
@@ -76,5 +78,31 @@ test-ci: ## Run tests on (Travis) CI build
7678
test: build-libc build-swig develop ## Run project test suite
7779
$(PYTHON_BIN) setup.py test
7880

81+
sdist: ## Create source distribution archive
82+
$(PYTHON_BIN) setup.py sdist --formats=gztar
83+
84+
bdist_wheel: ## Create architecture-specific binary wheel distribution archive
85+
$(PYTHON_BIN) setup.py bdist_wheel
86+
87+
# FIXME: After libskycoin 32-bits binaries add bdist_manylinux_i686
88+
bdist_manylinux: bdist_manylinux_amd64 ## Create multilinux binary wheel distribution archives
89+
90+
bdist_manylinux_amd64: ## Create 64 bits multilinux binary wheel distribution archives
91+
docker pull quay.io/pypa/manylinux1_x86_64
92+
docker run --rm -t -v $(PWD):/io quay.io/pypa/manylinux1_x86_64 /io/.travis/build_wheels.sh
93+
ls wheelhouse/
94+
cp -v wheelhouse/* $(DIST_DIR)
95+
96+
bdist_manylinux_i686: ## Create 32 bits multilinux binary wheel distribution archives
97+
docker pull quay.io/pypa/manylinux1_i686
98+
docker run --rm -t -v $(PWD):/io quay.io/pypa/manylinux1_i686 linux32 /io/.travis/build_wheels.sh
99+
ls wheelhouse/
100+
cp -v wheelhouse/* $(DIST_DIR)
101+
102+
dist: sdist bdist_wheel bdist_manylinux_amd64 ## Create distribution archives
103+
104+
check-dist: dist ## Perform self-tests upon distributions archives
105+
docker run --rm -t -v $(PWD):/io quay.io/pypa/manylinux1_i686 linux32 /io/.travis/check_wheels.sh
106+
79107
help: ## List available commands
80108
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'

skycoin/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
__version__ = "0.25.0"
1+
__version__ = "0.25.0.post1"
22
init_error = None
33

44
def _print2stderr(msg):

0 commit comments

Comments
 (0)