105 lines
2.3 KiB
YAML
105 lines
2.3 KiB
YAML
|
---
|
||
|
name: code-testing
|
||
|
on:
|
||
|
push:
|
||
|
branches:
|
||
|
- main
|
||
|
pull_request_target:
|
||
|
types: [assigned, opened, synchronize, reopened]
|
||
|
|
||
|
jobs:
|
||
|
compiling:
|
||
|
name: Run installation process and code compilation supported Python versions
|
||
|
runs-on: ubuntu-latest
|
||
|
strategy:
|
||
|
matrix:
|
||
|
python-version: ["3.8", "3.9", "3.10"]
|
||
|
|
||
|
steps:
|
||
|
- uses: actions/checkout@v3
|
||
|
|
||
|
- 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@v3
|
||
|
|
||
|
- name: Setup Python
|
||
|
uses: actions/setup-python@v3
|
||
|
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@v3
|
||
|
|
||
|
- name: Setup Python
|
||
|
uses: actions/setup-python@v3
|
||
|
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@v3
|
||
|
|
||
|
- name: Setup Python
|
||
|
uses: actions/setup-python@v3
|
||
|
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
|