Skip to content

Test

Test #129

Workflow file for this run

name: Test
on:
push:
branches:
- master
tags:
- v*
jobs:
test_linux:
name: Test (Linux)
runs-on: ubuntu-latest
env:
OS: Linux
strategy:
matrix:
include:
- python-version: 3.7
python-release: v3.7
python-impl: CPython
- python-version: 3.8
python-release: v3.8
python-impl: CPython
- python-version: 3.9
python-release: v3.9
python-impl: CPython
- python-version: '3.10'
python-release: v3.10
python-impl: CPython
- python-version: '3.11'
python-release: v3.11
python-impl: CPython
- python-version: '3.12'
python-release: v3.12
python-impl: CPython
#- python-version: pypy-3.7
# python-release: v3.7
# python-impl: PyPy
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Update pip
run: python -m pip install -U pip wheel setuptools
- name: Install CI requirements
run: python -m pip install coverage codacy-coverage
- name: Install library
run: pip install .
- name: Test in debug mode
run: python -m coverage run -p --source=pronto -m unittest discover -v
- name: Test in optimized mode
run: python -O -m coverage run -p --source=pronto -m unittest discover -v
- name: Combine coverage reports
run: python -m coverage combine
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
flags: ${{ matrix.python-impl }},${{ matrix.python-release }},${{ env.OS }}
name: test-python-${{ matrix.python-version }}
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}
package:
needs: test_linux
environment: PyPI
if: "startsWith(github.ref, 'refs/tags/v')"
runs-on: ubuntu-latest
name: Publish Python code
permissions:
id-token: write
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: 3.12
- name: Install build package
run: python -m pip install -U build
- name: Build a wheel and source tarball
run: python -m build --sdist --wheel --outdir dist
- name: Publish distributions to PyPI
if: "startsWith(github.ref, 'refs/tags')"
uses: pypa/gh-action-pypi-publish@release/v1
release:
environment: GitHub Releases
runs-on: ubuntu-latest
if: "startsWith(github.ref, 'refs/tags/v')"
name: Release
needs: package
steps:
- name: Checkout code
uses: actions/checkout@v1
- name: Release a Changelog
uses: rasmus-saks/[email protected]
with:
github-token: '${{ secrets.GITHUB_TOKEN }}'