119 lines
2.6 KiB
YAML
119 lines
2.6 KiB
YAML
---
|
|
name: code-testing
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
pull_request:
|
|
types: [assigned, opened, synchronize, reopened]
|
|
|
|
jobs:
|
|
|
|
pre-commit:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
python-version: ["3.8", "3.9", "3.10"]
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v4
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
- uses: pre-commit-ci/lite-action@v1.0.1
|
|
|
|
compiling:
|
|
name: Run installation process and code compilation supported Python versions
|
|
runs-on: ubuntu-latest
|
|
needs: [pre-commit]
|
|
strategy:
|
|
matrix:
|
|
python-version: ["3.8", "3.9", "3.10"]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Set up Python ${{ matrix.python-version }}
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
|
|
- name: install requirements
|
|
run: |
|
|
pip install .
|
|
|
|
- name: install dev requirements
|
|
run: pip install .[dev]
|
|
|
|
- name: validate the syntax of python scripts
|
|
run: |
|
|
python -m py_compile $(git ls-files '*.py')
|
|
|
|
linting:
|
|
name: Run flake8, pylint for supported Python versions
|
|
runs-on: ubuntu-latest
|
|
needs: [compiling]
|
|
|
|
strategy:
|
|
matrix:
|
|
python: ["3.8", "3.9", "3.10"]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Setup Python
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: ${{ matrix.python }}
|
|
|
|
- name: Install dependencies
|
|
run: pip install tox tox-gh-actions
|
|
|
|
- name: "Run tox for ${{ matrix.python }}"
|
|
run: tox -e lint
|
|
|
|
typing:
|
|
name: Run mypy for supported Python versions
|
|
runs-on: ubuntu-latest
|
|
needs: [compiling]
|
|
|
|
strategy:
|
|
matrix:
|
|
python: ["3.8", "3.9", "3.10"]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Setup Python
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: ${{ matrix.python }}
|
|
|
|
- name: Install dependencies
|
|
run: pip install tox tox-gh-actions
|
|
|
|
- name: "Run tox for ${{ matrix.python }}"
|
|
run: tox -e type
|
|
|
|
pytest:
|
|
name: Run pytest validation
|
|
runs-on: ubuntu-latest
|
|
needs: [linting, typing]
|
|
|
|
strategy:
|
|
matrix:
|
|
python: ["3.8", "3.9", "3.10"]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Setup Python
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: ${{ matrix.python }}
|
|
|
|
- name: Install dependencies
|
|
run: pip install tox tox-gh-actions
|
|
|
|
- name: "Run tox for ${{ matrix.python }}"
|
|
# run: tox -e testenv
|
|
run: tox
|