Skip to content

Tests

Tests #262

Workflow file for this run

name: Tests
on:
schedule:
- cron: "10 16 * * 3"
pull_request:
branches: [ master ]
workflow_dispatch:
jobs:
ubuntu-system-python:
name: ${{ matrix.os }}-system-python
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-20.04, ubuntu-22.04]
steps:
- uses: actions/checkout@v3
- name: Install System Python
run: |
sudo apt install python3-dev python3-pip
- name: Install Testing Requirements
run: python3 -m pip install nox
- name: Run Tests
run: python3 -m nox -e tests
- name: Upload to codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
setup-python:
name: ${{ matrix.os }}-setup-python
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [windows-latest, macos-latest, ubuntu-latest]
steps:
- name: Checkout project
uses: actions/checkout@v3
- name: Install Python
uses: actions/setup-python@v4
with:
python-version: '3.x'
- name: Install Testing Requirements
run: python -m pip install nox
- name: Run tests
run: python -m nox -e tests
- name: Upload to codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
anaconda:
name: ${{ matrix.os }}-anaconda
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash -l {0} # setup-miniconda requires using login bash shells to activate env
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
steps:
- uses: actions/checkout@v3
- uses: conda-incubator/setup-miniconda@v2
with:
auto-update-conda: true
auto-activate-base: true
activate-environment: ''
- name: Install Testing Requirements
run: python -m pip install nox
- name: Run Tests
run: python -m nox -e tests
- name: Upload to codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
rhel7:
name: rhel7-system-python
runs-on: ubuntu-latest
container: "centos:7"
steps:
- name: Install System Python and Git
run: yum install -y python3-devel python3-pip python3 git
- uses: actions/checkout@v3
- name: Install Testing Requirements
run: python3 -m pip install nox
- name: Run Tests
run: python3 -m nox -e tests
# we don't upload coverage here because codecov's uploader doesn't support OS's this old
rhel8-system-python:
name: rhel8-system-python
runs-on: ubuntu-latest
container: "almalinux:8"
steps:
- name: Install System Python and Git
run: yum install -y python3-devel python3-pip python3 git
- uses: actions/checkout@v3
- name: Install Testing Requirements
run: python3 -m pip install nox
- name: Run Tests
run: python3 -m nox -e tests
- name: Upload to codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
rhel8-appstream-py38:
name: rhel8-appstream-py38
runs-on: ubuntu-latest
container: "almalinux:8"
steps:
- name: Install Python 3.8 and Git from AppStream
run: yum install -y python38-devel python38-pip python38-pip-wheel python38 git
- uses: actions/checkout@v3
- name: Install Testing Requirements
run: python3.8 -m pip install nox
- name: Run Tests
run: python3.8 -m nox -e tests
- name: Upload to codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
rhel8-appstream-py39:
name: rhel8-appstream-py39
runs-on: ubuntu-latest
container: "almalinux:8"
steps:
- name: Install Python 3.9 and Git from AppStream
run: yum install -y python39-devel python39-pip python39-pip-wheel python39 git
- uses: actions/checkout@v3
- name: Install Testing Requirements
run: python3.9 -m pip install nox
- name: Run Tests
run: python3.9 -m nox -e tests
- name: Upload to codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
rhel9-system-python:
name: rhel9-system-python
runs-on: ubuntu-latest
container: "almalinux:9"
steps:
- name: Install System Python and Git
run: yum install -y python3-devel python3-pip python3 git
- uses: actions/checkout@v3
- name: Install Testing Requirements
run: python3 -m pip install nox
- name: Run Tests
run: python3 -m nox -e tests
- name: Upload to codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
msys:
name: ${{ matrix.msystem }}-system-python
runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
strategy:
fail-fast: false
matrix:
msystem:
- MSYS
- MINGW64
steps:
- name: Install msys2 (MINGW64)
if: matrix.msystem == 'MINGW64'
uses: msys2/setup-msys2@v2
with:
msystem: MINGW64
install: >-
mingw-w64-x86_64-toolchain
mingw-w64-x86_64-python
mingw-w64-x86_64-python-pip
mingw-w64-x86_64-python-setuptools
mingw-w64-x86_64-python-wheel
update: true
- name: Install msys2 (MSYS)
if: matrix.msystem == 'MSYS'
uses: msys2/setup-msys2@v2
with:
msystem: MSYS
install: >-
msys2-devel
git
python
python-devel
python-pip
python-setuptools
update: true
- name: Install wheel package (MSYS)
if: matrix.msystem == 'MSYS'
run: pip install --no-build-isolation wheel
- uses: actions/checkout@v3
- name: Install package
run: pip install --no-build-isolation .
- name: Print libpython
run: |
echo 'NAMES'
find_libpython -v --candidate-names
echo 'PATHS'
find_libpython -v --candidate-paths
echo 'LOCATION'
find_libpython -v
- name: Install Testing Requirements
run: pip install --no-build-isolation pytest pytest-cov
- name: Run Tests
run: |
pytest --cov --cov-branch tests/
pytest --cov --cov-branch --cov-append --doctest-modules $(python -c 'import find_libpython; print(find_libpython.__file__)')
coverage xml -o coverage.xml
- name: Upload to codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
alpine:
name: alpine-system-python
runs-on: ubuntu-latest
container: "alpine:latest"
steps:
- name: Update Packages
run: |
apk update
apk upgrade
- name: Install System Python and Git
run: |
apk add python3 python3-dev py3-pip py3-nox git
- name: Download Source
uses: actions/checkout@v3
- name: Run Tests
run: |
nox -e tests
# - name: Upload to codecov
# uses: codecov/codecov-action@v4
# with:
# token: ${{ secrets.CODECOV_TOKEN }}
# verbose: true
homebrew:
name: homebrew-system-python
runs-on: macos-latest
steps:
- name: Install System Python and Git
run: |
brew install python git
- name: Download Source
uses: actions/checkout@v3
- name: Install Testing Requirements
run: |
python3 -m pip install nox
- name: Run Tests
run: |
python3 -m nox -e tests
- name: Upload to codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
archlinux:
name: archlinux-system-python
runs-on: ubuntu-latest
container:
image: archlinux
options: --privileged
steps:
- name: Install System Python and Git
run: |
pacman --noconfirm -Sy python python-pip git
- name: Download Source
uses: actions/checkout@v3
- name: Create and activate environment
run: |
python -m venv .venv
. .venv/bin/activate
echo PATH=$PATH >> $GITHUB_ENV
- name: Install Testing Requirements
run: |
pip install nox
- name: Run Tests
run: |
nox -e tests
- name: Upload to codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true