Tests #262
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: 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 |