Skip to content

Escalate test suite warnings to errors #192

Escalate test suite warnings to errors

Escalate test suite warnings to errors #192

Workflow file for this run

name: "🧪 Test"
# Controls when the action will run. Triggers the workflow on push or
# pull request events but only for the master branch
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
test:
name: "${{ matrix.name }} / ${{ matrix.cpython }}"
runs-on: "${{ matrix.runner }}"
defaults:
run:
shell: "bash"
strategy:
fail-fast: false
matrix:
name:
- "Linux"
- "macOS"
- "Windows (x64)"
- "Windows (x86)"
cpython:
- "3.9"
- "3.10"
- "3.11"
- "3.12"
- "3.13"
include:
# Augment the matrix with additional values.
# The values match on "name".
- name: "Linux"
runner: "ubuntu-latest"
architecture: "x64"
- name: "macOS"
runner: "macos-latest"
architecture: "arm64"
- name: "Windows (x64)"
runner: "windows-latest"
architecture: "x64"
- name: "Windows (x86)"
runner: "windows-latest"
architecture: "x86"
steps:
- name: "Checkout the repository"
uses: actions/checkout@v4
- name: "Set up Python ${{ matrix.cpython }}"
uses: actions/setup-python@v5
with:
python-version: "${{ matrix.cpython }}"
architecture: "${{ matrix.architecture }}"
allow-prereleases: true
- name: "Install build prerequisites (Linux)"
if: matrix.name == 'Linux'
run: |
sudo apt install libpcsclite-dev python3-all-dev python3-setuptools swig
- name: "Install build prerequisites (macOS)"
if: matrix.name == 'macOS'
run: |
brew install swig
- name: "Install build prerequisites (Windows)"
if: startsWith(matrix.name, 'Windows')
run: |
choco upgrade swig --allow-empty-checksums --yes --limit-output
swig -version
- name: "Determine virtual environment bin path"
shell: "bash"
run: |
echo 'venv-path=temp/${{ runner.os == 'Windows' && 'Scripts' || 'bin' }}' >> "$GITHUB_ENV"
- name: "Create a virtual environment"
run: |
python -m venv temp
${{ env.venv-path }}/python -m pip install --upgrade pip setuptools wheel
${{ env.venv-path }}/pip install tox
- name: "Test"
run: |
${{ env.venv-path }}/tox -e py${{ matrix.cpython }},coverage_report-ci
- name: "Coveralls"
uses: coverallsapp/github-action@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: "Build"
run: |
${{ env.venv-path }}/tox -e build
- name: "Upload wheel"
uses: actions/upload-artifact@v4
with:
name: wheel-${{ matrix.name }}-${{ matrix.cpython }}-${{ matrix.architecture }}
path: dist/*.whl
quality:
name: "Quality"
runs-on: "ubuntu-latest"
steps:
- name: "Checkout the repository"
uses: actions/checkout@v4
- name: "Set up Python"
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: "Install build prerequisites"
run: |
sudo apt install libpcsclite-dev python3-all-dev swig
- name: "Create a virtual environment"
run: |
python -m venv temp
temp/bin/python -m pip install --upgrade pip setuptools wheel
temp/bin/pip install tox
- name: "Perform quality checks: docs"
run: |
temp/bin/tox -e docs
- name: "Perform quality checks: pylint"
run: |
temp/bin/tox -e pylint