-
Notifications
You must be signed in to change notification settings - Fork 294
Move CI to GitHub Actions & split python versions into jobs #603
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
browniebroke
wants to merge
15
commits into
PythonCharmers:master
from
browniebroke:gh/matrix-dockerfiles
Closed
Changes from 11 commits
Commits
Show all changes
15 commits
Select commit
Hold shift + click to select a range
38bc588
Move CI to GitHub Actions
browniebroke c3f7a81
Update build badge
browniebroke fa19c71
Configure a basic build matrix using the Docker image
browniebroke 04991b2
Fix missing virtual env version
browniebroke 7dc0a0a
Move Docker build arguments closer to their use
browniebroke c95330b
Split CI across multiple jobs
browniebroke 9954b44
Fix syntax
browniebroke 5a2d8e2
Split builds between Python 2.6 vs other versions
browniebroke 741f383
Fix 'zlib not available' error
browniebroke 9b49043
Use existing Docker image to get a working version of Python 2.6
browniebroke c7b5b47
Use a lighter Docker image for 2.6
browniebroke 92d08f4
Merge branch 'master' into gh/matrix-dockerfiles
browniebroke 6e580cb
Update test_pow
browniebroke 1d50290
Update test_ftp
browniebroke efb02b9
Make _dummy_thread move work in Python 3.9
browniebroke File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or 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,46 @@ | ||
name: CI | ||
|
||
on: | ||
pull_request: | ||
push: | ||
|
||
concurrency: | ||
group: ${{ github.head_ref || github.run_id }} | ||
cancel-in-progress: true | ||
|
||
jobs: | ||
test: | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
versions: | ||
- python: "2.6" | ||
- python: "2.7" | ||
- python: "3.3" | ||
- python: "3.4" | ||
- python: "3.5" | ||
- python: "3.6" | ||
- python: "3.7" | ||
- python: "3.8" | ||
- python: "3.9" | ||
|
||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- if: ${{ matrix.versions.python != '2.6' }} | ||
run: | | ||
docker build \ | ||
. \ | ||
--build-arg PYTHON_VERSION=${{ matrix.versions.python }} \ | ||
-t jmadler/python-future-builder:${{ matrix.versions.python }} | ||
- if: ${{ matrix.versions.python == '2.6' }} | ||
run: | | ||
docker build \ | ||
. \ | ||
-f 2.6.Dockerfile \ | ||
-t jmadler/python-future-builder:${{ matrix.versions.python }} | ||
- run: | | ||
docker run \ | ||
-e PYTHON_VERSION=${{ matrix.versions.python }} \ | ||
jmadler/python-future-builder:${{ matrix.versions.python }} \ | ||
/root/python-future/test.sh |
This file was deleted.
Oops, something went wrong.
This file contains hidden or 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,26 @@ | ||
FROM mrupgrade/deadsnakes:2.6 | ||
sfdye marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
RUN mkdir -p ~/.pip/ && echo '[global] \n\ | ||
trusted-host = pypi.python.org\n\ | ||
pypi.org\n\ | ||
files.pythonhosted.org\n\ | ||
' >> ~/.pip/pip.conf | ||
|
||
RUN apt-get update && \ | ||
apt-get install -y curl | ||
|
||
RUN mkdir -p /root/pip && \ | ||
cd /root/pip && \ | ||
curl -O https://files.pythonhosted.org/packages/8a/e9/8468cd68b582b06ef554be0b96b59f59779627131aad48f8a5bce4b13450/wheel-0.29.0-py2.py3-none-any.whl && \ | ||
curl -O https://files.pythonhosted.org/packages/31/77/3781f65cafe55480b56914def99022a5d2965a4bb269655c89ef2f1de3cd/importlib-1.0.4.zip && \ | ||
curl -O https://files.pythonhosted.org/packages/ef/41/d8a61f1b2ba308e96b36106e95024977e30129355fd12087f23e4b9852a1/pytest-3.2.5-py2.py3-none-any.whl && \ | ||
curl -O https://files.pythonhosted.org/packages/f2/94/3af39d34be01a24a6e65433d19e107099374224905f1e0cc6bbe1fd22a2f/argparse-1.4.0-py2.py3-none-any.whl && \ | ||
curl -O https://files.pythonhosted.org/packages/72/20/7f0f433060a962200b7272b8c12ba90ef5b903e218174301d0abfd523813/unittest2-1.1.0-py2.py3-none-any.whl && \ | ||
curl -O https://files.pythonhosted.org/packages/53/67/9620edf7803ab867b175e4fd23c7b8bd8eba11cb761514dcd2e726ef07da/py-1.4.34-py2.py3-none-any.whl && \ | ||
curl -O https://files.pythonhosted.org/packages/53/25/ef88e8e45db141faa9598fbf7ad0062df8f50f881a36ed6a0073e1572126/ordereddict-1.1.tar.gz && \ | ||
curl -O https://files.pythonhosted.org/packages/17/0a/6ac05a3723017a967193456a2efa0aa9ac4b51456891af1e2353bb9de21e/traceback2-1.4.0-py2.py3-none-any.whl && \ | ||
curl -O https://files.pythonhosted.org/packages/65/26/32b8464df2a97e6dd1b656ed26b2c194606c16fe163c695a992b36c11cdf/six-1.13.0-py2.py3-none-any.whl && \ | ||
curl -O https://files.pythonhosted.org/packages/c7/a3/c5da2a44c85bfbb6eebcfc1dde24933f8704441b98fdde6528f4831757a6/linecache2-1.0.0-py2.py3-none-any.whl | ||
|
||
WORKDIR /root/python-future | ||
ADD . /root/python-future |
This file contains hidden or 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,40 +1,7 @@ | ||
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 | ||
ARG PYTHON_VERSION | ||
FROM python:${PYTHON_VERSION}-slim | ||
|
||
ENV LC_ALL=C.UTF-8 | ||
ENV LANG=C.UTF-8 | ||
|
||
WORKDIR /root/python-future | ||
ADD . /root/python-future |
This file contains hidden or 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
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains hidden or 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,18 @@ | ||
#!/bin/bash | ||
|
||
set -exo pipefail | ||
|
||
python --version | ||
|
||
if [ -e "/root/pip" ] | ||
then | ||
pip install /root/pip/*.zip /root/pip/*.whl /root/pip/*tar.gz | ||
else | ||
pip install pytest unittest2 | ||
fi | ||
|
||
pytag="py${PYTHON_VERSION//./}" | ||
|
||
python setup.py bdist_wheel --python-tag="${pytag}" | ||
pip install dist/future-*-${pytag}-none-any.whl | ||
pytest tests/ |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
If you want to push the images to dockerhub, you might want to use this GitHub action, but it'll require a maintainer to setup the credentials.
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.
SGTM. @edschofield you may also want to retag as under the PythonCharmers org instead of under my personal profile.