test.yml 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. name: Test
  2. on: [push, pull_request]
  3. jobs:
  4. test:
  5. strategy:
  6. matrix:
  7. os: [ubuntu-latest, macos-latest, windows-latest]
  8. python-version: ['3.9', '3.10', '3.11', '3.12.3', '3.13.0', pypy-3.9]
  9. exclude:
  10. - os: windows-latest
  11. python-version: pypy-3.9
  12. runs-on: ${{ matrix.os }}
  13. steps:
  14. - uses: actions/checkout@v4
  15. - uses: actions/setup-python@v5
  16. with:
  17. python-version: ${{ matrix.python-version }}
  18. - name: Install Test dependencies
  19. run: pip install tox
  20. - name: Test
  21. run: tox -e py
  22. - name: Install Coveralls
  23. if: github.event_name == 'push'
  24. run: pip install coveralls
  25. - name: Upload coverage to Coveralls
  26. if: github.event_name == 'push'
  27. env:
  28. COVERALLS_PARALLEL: true
  29. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  30. run: coveralls --service=github
  31. coveralls-finish:
  32. needs: test
  33. if: github.event_name == 'push'
  34. runs-on: ubuntu-latest
  35. steps:
  36. - uses: actions/setup-python@v5
  37. with:
  38. python-version: 3.x
  39. - name: Install Coveralls
  40. run: pip install coveralls
  41. - name: Finish Coveralls parallel builds
  42. env:
  43. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  44. run: coveralls --service=github --finish
  45. lint:
  46. runs-on: ubuntu-latest
  47. steps:
  48. - uses: actions/checkout@v4
  49. - uses: actions/setup-python@v5
  50. with:
  51. python-version: '3.12'
  52. - name: Install tox
  53. run: pip install tox
  54. - name: Lint
  55. run: tox -e flake8,mypy,isort