Fix Python 3.4 tests on CI #178
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
name: Run all tests | |
on: [push, pull_request] | |
env: | |
PIP: "env PIP_DISABLE_PIP_VERSION_CHECK=1 | |
PYTHONWARNINGS=ignore:DEPRECATION | |
pip --no-cache-dir" | |
jobs: | |
tests_py27: | |
runs-on: ubuntu-20.04 | |
container: python:2.7 | |
strategy: | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: $PIP install virtualenv tox | |
- name: Run the unit tests | |
run: TOXENV=py27 tox | |
- name: Run the end-to-end tests | |
run: TOXENV=py27 END_TO_END=1 tox | |
tests_py34: | |
runs-on: ubuntu-20.04 | |
strategy: | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Build OpenSSL 1.0.2 (required by Python 3.4) | |
run: | | |
sudo apt-get install build-essential zlib1g-dev | |
cd $RUNNER_TEMP | |
wget https://github.com/openssl/openssl/releases/download/OpenSSL_1_0_2u/openssl-1.0.2u.tar.gz | |
tar -xf openssl-1.0.2u.tar.gz | |
cd openssl-1.0.2u | |
./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib-dynamic | |
make | |
sudo make install | |
echo CFLAGS="-I/usr/local/ssl/include $CFLAGS" >> $GITHUB_ENV | |
echo LDFLAGS="-L/usr/local/ssl/lib $LDFLAGS" >> $GITHUB_ENV | |
echo LD_LIBRARY_PATH="/usr/local/ssl/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV | |
sudo ln -s /usr/local/ssl/lib/libssl.so.1.0.0 /usr/lib/libssl.so.1.0.0 | |
sudo ln -s /usr/local/ssl/lib/libcrypto.so.1.0.0 /usr/lib/libcrypto.so.1.0.0 | |
sudo ldconfig | |
- name: Build Python 3.4 | |
run: | | |
sudo apt-get install build-essential libncurses5-dev libgdbm-dev libnss3-dev libreadline-dev zlib1g-dev | |
cd $RUNNER_TEMP | |
wget -O cpython-3.4.10.zip https://github.com/python/cpython/archive/refs/tags/v3.4.10.zip | |
unzip cpython-3.4.10.zip | |
cd cpython-3.4.10 | |
./configure | |
make | |
sudo make install | |
python3.4 --version | |
python3.4 -c 'import ssl' | |
- name: Install dependencies | |
run: $PIP install virtualenv==20.4.7 tox==3.28.0 | |
- name: Run the unit tests | |
run: TOXENV=py34 tox | |
- name: Run the end-to-end tests | |
run: TOXENV=py34 END_TO_END=1 tox | |
tests_py35: | |
runs-on: ubuntu-20.04 | |
strategy: | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Work around pip SSL cert verify error | |
run: sudo $PIP config set global.trusted-host 'pypi.python.org pypi.org files.pythonhosted.org' | |
- name: Set up Python 3.5 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.5 | |
- name: Install dependencies | |
run: $PIP install virtualenv tox | |
- name: Set variable for TOXENV based on Python version | |
id: toxenv | |
run: python -c 'import sys; print("TOXENV=py%d%d" % (sys.version_info.major, sys.version_info.minor))' | tee -a $GITHUB_OUTPUT | |
- name: Run the unit tests | |
run: TOXENV=${{steps.toxenv.outputs.TOXENV}} tox | |
- name: Run the end-to-end tests | |
run: TOXENV=${{steps.toxenv.outputs.TOXENV}} END_TO_END=1 tox | |
tests_py3x: | |
runs-on: ubuntu-20.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: [3.6, 3.7, 3.8, 3.9, "3.10", 3.11, 3.12, 3.13] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies | |
run: $PIP install virtualenv tox | |
- name: Set variable for TOXENV based on Python version | |
id: toxenv | |
run: python -c 'import sys; print("TOXENV=py%d%d" % (sys.version_info.major, sys.version_info.minor))' | tee -a $GITHUB_OUTPUT | |
- name: Run the unit tests | |
run: TOXENV=${{steps.toxenv.outputs.TOXENV}} tox | |
- name: Run the end-to-end tests | |
run: TOXENV=${{steps.toxenv.outputs.TOXENV}} END_TO_END=1 tox | |
coverage_py27: | |
runs-on: ubuntu-20.04 | |
container: python:2.7 | |
strategy: | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: $PIP install virtualenv tox | |
- name: Run unit test coverage | |
run: TOXENV=cover tox | |
coverage_py3x: | |
runs-on: ubuntu-20.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: [3.8] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies | |
run: $PIP install virtualenv tox | |
- name: Run unit test coverage | |
run: TOXENV=cover3 tox | |
docs: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.8" | |
- name: Install dependencies | |
run: $PIP install virtualenv tox>=4.0.0 | |
- name: Build the docs | |
run: TOXENV=docs tox |