|
name: Test |
|
|
|
# If a pull-request is pushed then cancel all previously running jobs related |
|
# to that pull-request |
|
concurrency: |
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} |
|
cancel-in-progress: true |
|
|
|
on: |
|
push: |
|
branches: |
|
- main |
|
pull_request: |
|
branches: |
|
- main |
|
- master |
|
|
|
env: |
|
PY_COLORS: 1 |
|
|
|
jobs: |
|
unit: |
|
runs-on: ${{ matrix.os }} |
|
strategy: |
|
fail-fast: false |
|
matrix: |
|
os: [ubuntu-latest] |
|
python: |
|
- version: "3.10" |
|
toxenv: py310,smoke |
|
- version: "3.11" |
|
toxenv: py311,smoke |
|
- version: "3.12" |
|
toxenv: py312,smoke |
|
- version: "3.13" |
|
toxenv: py313,smoke |
|
- version: "3.14" |
|
toxenv: py314,smoke |
|
include: |
|
- os: macos-latest |
|
python: |
|
version: "3.14" |
|
toxenv: py314,smoke |
|
- os: windows-latest |
|
python: |
|
version: "3.14" |
|
toxenv: py314,smoke |
|
steps: |
|
- uses: actions/checkout@v6.0.1 |
|
- name: Set up Python ${{ matrix.python.version }} |
|
uses: actions/setup-python@v6.1.0 |
|
with: |
|
python-version: ${{ matrix.python.version }} |
|
- name: Install dependencies |
|
run: pip install tox |
|
- name: Run tests |
|
env: |
|
TOXENV: ${{ matrix.python.toxenv }} |
|
run: tox --skip-missing-interpreters false |
|
|
|
functional: |
|
timeout-minutes: 30 |
|
runs-on: ubuntu-24.04 |
|
strategy: |
|
matrix: |
|
toxenv: [api_func_v4, cli_func_v4] |
|
steps: |
|
- uses: actions/checkout@v6.0.1 |
|
- name: Set up Python |
|
uses: actions/setup-python@v6.1.0 |
|
with: |
|
python-version: "3.14" |
|
- name: Install dependencies |
|
run: pip install tox |
|
- name: Run tests |
|
env: |
|
TOXENV: ${{ matrix.toxenv }} |
|
run: tox -- --override-ini='log_cli=True' |
|
- name: Upload codecov coverage |
|
uses: codecov/codecov-action@v5.5.2 |
|
with: |
|
files: ./coverage.xml |
|
flags: ${{ matrix.toxenv }} |
|
fail_ci_if_error: false |
|
token: ${{ secrets.CODECOV_TOKEN }} |
|
|
|
coverage: |
|
runs-on: ubuntu-24.04 |
|
steps: |
|
- uses: actions/checkout@v6.0.1 |
|
- name: Set up Python ${{ matrix.python-version }} |
|
uses: actions/setup-python@v6.1.0 |
|
with: |
|
python-version: "3.14" |
|
- name: Install dependencies |
|
run: pip install tox |
|
- name: Run tests |
|
env: |
|
PY_COLORS: 1 |
|
TOXENV: cover |
|
run: tox |
|
- name: Upload codecov coverage |
|
uses: codecov/codecov-action@v5.5.2 |
|
with: |
|
files: ./coverage.xml |
|
flags: unit |
|
fail_ci_if_error: false |
|
token: ${{ secrets.CODECOV_TOKEN }} |
|
|
|
dist: |
|
runs-on: ubuntu-latest |
|
name: Python wheel |
|
steps: |
|
- uses: actions/checkout@v6.0.1 |
|
- uses: actions/setup-python@v6.1.0 |
|
with: |
|
python-version: "3.14" |
|
- name: Install dependencies |
|
run: | |
|
pip install -r requirements-test.txt |
|
- name: Build package |
|
run: python -m build -o dist/ |
|
- uses: actions/upload-artifact@v6.0.0 |
|
with: |
|
name: dist |
|
path: dist |
|
|
|
test: |
|
runs-on: ubuntu-latest |
|
needs: [dist] |
|
steps: |
|
- uses: actions/checkout@v6.0.1 |
|
- name: Set up Python |
|
uses: actions/setup-python@v6.1.0 |
|
with: |
|
python-version: '3.14' |
|
- uses: actions/download-artifact@v7.0.0 |
|
with: |
|
name: dist |
|
path: dist |
|
- name: install dist/*.whl and requirements |
|
run: pip install dist/*.whl -r requirements-test.txt tox |
|
- name: Run tests |
|
run: tox -e install |