name: Tests and linters on: [push, pull_request, workflow_dispatch] jobs: tests-on-legacy-versions: name: Run tests on legacy versions runs-on: ubuntu-20.04 strategy: matrix: python-version: [3.7, pypy2.7, pypy3.9] steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - run: pip install tox - run: tox env: TOXENV: ${{ matrix.python-version }} test-on-different-versions: name: Run tests runs-on: ubuntu-latest strategy: matrix: python-version: [3.8, 3.9, "3.10", 3.11, 3.12] steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - run: pip install tox - run: tox env: TOXENV: ${{ matrix.python-version }} test-coverage: name: Run tests with coverage runs-on: ubuntu-latest env: # Cython's version <3 issue with tracing: "error: no member named 'use_tracing' in 'struct _PyCFrame'" # DEPENDENCY_INJECTOR_DEBUG_MODE: 1 COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: python-version: 3.12 - run: pip install tox cython==0.29.37 - run: make cythonize - run: tox env: TOXENV: coveralls linters: name: Run linters runs-on: ubuntu-latest strategy: matrix: toxenv: [flake8, pydocstyle, mypy, pylint] steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: python-version: 3.12 - run: pip install tox - run: tox env: TOXENV: ${{ matrix.toxenv }}