--- 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