-
Notifications
You must be signed in to change notification settings - Fork 291
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #569 from jmadler/master
Build Image w/ wheel support
- Loading branch information
Showing
8 changed files
with
91 additions
and
62 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -21,6 +21,8 @@ develop-eggs | |
.installed.cfg | ||
lib | ||
lib64 | ||
MANIFEST | ||
MANIFEST.in | ||
|
||
# Backup files | ||
*.bak | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,46 +1,11 @@ | ||
sudo: false | ||
language: python | ||
cache: pip | ||
language: generic | ||
|
||
|
||
matrix: | ||
include: | ||
- python: 2.6 | ||
env: TOXENV=py26 | ||
dist: trusty | ||
- python: 2.7 | ||
env: TOXENV=py27 | ||
- python: 3.3 | ||
env: TOXENV=py33 | ||
dist: trusty | ||
sudo: false | ||
- python: 3.4 | ||
env: TOXENV=py34 | ||
- python: 3.5 | ||
env: TOXENV=py35 | ||
- python: 3.6 | ||
env: TOXENV=py36 | ||
- python: 3.7 | ||
env: TOXENV=py37 | ||
dist: xenial # required for Python 3.7 (travis-ci/travis-ci#9069) | ||
sudo: required # required for Python 3.7 (travis-ci/travis-ci#9069) | ||
|
||
install: | ||
- pip install typing==3.7.4.1 # required for Python 3.3 | ||
- pip install tox==2.9.1 | ||
- pip install virtualenv==15.2.0 | ||
- pip install py==1.4.30 | ||
- pip install pluggy==0.5.2 | ||
services: | ||
- docker | ||
|
||
before_script: | ||
# Run flake8 tests only on Python 2.7 and 3.7... | ||
# 1) stop the build if there are Python syntax errors or undefined names | ||
# 2) exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide | ||
- if [[ $TRAVIS_PYTHON_VERSION == *.7 ]]; then | ||
pip install flake8; | ||
flake8 . --count --exit-zero --select=E901,E999,F821,F822,F823 --show-source --statistics; | ||
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics; | ||
fi | ||
- docker pull jmadler/python-future-builder:latest | ||
|
||
script: | ||
- tox | ||
- ./build.sh | ||
- ./lint.sh |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
FROM debian:9 | ||
# This docker image has a copy of a wide array of Pythons installed | ||
RUN apt-get update | ||
RUN apt-get install --yes --no-install-recommends make build-essential zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libffi-dev liblzma-dev libssl1.0-dev | ||
RUN apt-get install --yes git vim | ||
RUN apt-get install --yes python3-pip | ||
ENV PYENV_ROOT=/opt/pyenv | ||
RUN curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash | ||
RUN echo export PATH="/opt/pyenv/bin:$PATH" >> ~/.bashrc | ||
RUN echo 'eval "$(pyenv init -)"' >> ~/.bashrc | ||
RUN echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc | ||
# venv 15.2.0 is the last to support Python 2.6. | ||
RUN pip3 install virtualenv==15.2.0 | ||
RUN PATH=/opt/pyenv/bin:$PATH pyenv install 2.6.9 | ||
RUN virtualenv /root/py26 --python /opt/pyenv/versions/2.6.9/bin/python | ||
RUN PATH=/opt/pyenv/bin:$PATH pyenv install 3.3.7 | ||
RUN virtualenv /root/py33 --python /opt/pyenv/versions/3.3.7/bin/python | ||
RUN pip3 install virtualenv==20.0.21 | ||
RUN PATH=/opt/pyenv/bin:$PATH pyenv install 3.4.10 | ||
RUN virtualenv /root/py34 --python /opt/pyenv/versions/3.4.10/bin/python | ||
RUN apt-get install --yes libssl-dev libxmlsec1-dev | ||
RUN PATH=/opt/pyenv/bin:$PATH pyenv install 2.7.18 | ||
RUN virtualenv /root/py27 --python /opt/pyenv/versions/2.7.18/bin/python | ||
RUN PATH=/opt/pyenv/bin:$PATH pyenv install 3.5.9 | ||
RUN virtualenv /root/py35 --python /opt/pyenv/versions/3.5.9/bin/python | ||
RUN PATH=/opt/pyenv/bin:$PATH pyenv install 3.6.10 | ||
RUN virtualenv /root/py36 --python /opt/pyenv/versions/3.6.10/bin/python | ||
RUN PATH=/opt/pyenv/bin:$PATH pyenv install 3.7.7 | ||
RUN virtualenv /root/py37 --python /opt/pyenv/versions/3.7.7/bin/python | ||
RUN PATH=/opt/pyenv/bin:$PATH pyenv install 3.8.3 | ||
RUN virtualenv /root/py38 --python /opt/pyenv/versions/3.8.3/bin/python | ||
RUN PATH=/opt/pyenv/bin:$PATH pyenv install 3.9.0 | ||
RUN virtualenv /root/py39 --python /opt/pyenv/versions/3.9.0/bin/python | ||
# Lint tools | ||
RUN pip3 install flake8 | ||
RUN ln -s /usr/bin/python3 /usr/bin/python | ||
ENV LC_ALL=C.UTF-8 | ||
ENV LANG=C.UTF-8 | ||
WORKDIR /root/python-future | ||
ADD . /root/python-future |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,13 +1,11 @@ | ||
Currently the tests are passing on OS X and Linux on Python 2.7 and 3.4. | ||
A docker image, python-future-builder, is used to do testing and building. The test suite can be run with: | ||
|
||
The test suite can be run with: | ||
|
||
$ tox | ||
$ bash build.sh | ||
|
||
which tests the module under a number of different python versions, where available, or with: | ||
|
||
$ py.test | ||
|
||
To execute a single test: | ||
|
||
$ pytest -k test_chained_exceptions_stacktrace | ||
$ pytest -k test_chained_exceptions_stacktrace |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
# XXX: TODO: we should make this include -e once tests pass | ||
set -xuo pipefail | ||
|
||
DOCKER_IMAGE=jmadler/python-future-builder | ||
# XXX: TODO: Perhaps this version shouldn't be hardcoded | ||
version=0.18.2 | ||
|
||
docker build . -t $DOCKER_IMAGE | ||
docker push $DOCKER_IMAGE:latest | ||
|
||
for i in py26 py27 py33 py34 py35 py36 py37 py38 py39; do | ||
docker run -ti -v $(realpath dist):/root/python-future/dist $DOCKER_IMAGE /root/python-future/setup.sh $version $(basename $i) | ||
done | ||
|
||
python setup.py sdist | ||
python setup.py clean | ||
echo You may now run: "twine upload dist/*" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# TODO: Run under Python 2.7 and 3.7 | ||
flake8 . --count --exit-zero --select=E901,E999,F821,F822,F823 --show-source --statistics || true | ||
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics || true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
#!/bin/bash | ||
|
||
set -exo pipefail | ||
|
||
version=$1 | ||
pytag=$2 | ||
|
||
if [ $pytag = 'py33' ]; then | ||
pip3 install virtualenv==16.2.0 | ||
fi | ||
|
||
source /root/$pytag/bin/activate | ||
|
||
if [ $pytag = 'py26' ]; then | ||
pip install importlib | ||
fi | ||
pip install pytest unittest2 | ||
python setup.py bdist_wheel --python-tag=$pytag | ||
pip install dist/future-$version-$pytag-none-any.whl | ||
pytest tests/ |
80523f3
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@edschofield Thanks for working on this. Do you think we could get a new release pushed to PyPI with wheels?