Skip to content

Github actions

Github actions #20

Workflow file for this run

# This workflow will install Python dependencies, lint, and run tests in supported versions of Python.
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
name: tests
on:
push:
branches: [ "master", "gha" ]
pull_request:
branches: [ "master" ]
permissions:
contents: read
jobs:
pytest:
strategy:
matrix:
python-version: ["3.5", "3.6", "3.7", "3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14.0-alpha.5"]
include:
- python-version: "3.5"
os: ubuntu-20.04
- python-version: "3.6"
os: ubuntu-20.04
- python-version: "3.7"
os: ubuntu-22.04
- python-version: "3.8"
os: ubuntu-24.04
- python-version: "3.9"
os: ubuntu-24.04
- python-version: "3.10"
os: ubuntu-24.04
- python-version: "3.11"
os: ubuntu-24.04
- python-version: "3.12"
os: ubuntu-24.04
- python-version: "3.13"
os: ubuntu-24.04
- python-version: "3.14.0-alpha.5"
os: ubuntu-24.04
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
env:
PIP_TRUSTED_HOST: "pypi.python.org pypi.org files.pythonhosted.org"
- name: Display Python version
run: python -c "import sys; print(sys.version)"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements/pytest.txt
- name: Test with pytest
run: |
coverage run -m pytest
coverage report -m
pytest-python27:
runs-on: ubuntu-latest
container: coatldev/six:latest
steps:
- uses: actions/checkout@v4
- name: Display Python version
run: python2 -c "import sys; print(sys.version)"
- name: Install dependencies
run: |
python2 -m pip install --upgrade pip
pip2 install -r requirements/pytest.txt
- name: Test with pytest
run: |
coverage2 run -m pytest
coverage2 report -m
flake8:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.13
uses: actions/setup-python@v5
with:
python-version: 3.13
- name: Display Python verison
run: python -c "import sys; print(sys.version)"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements/flake8.txt
- name: Lint with flake8
run: |
# stop the build if there are Python syntax errors or undefined names
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics