name: CI on: push: branches: [ main ] pull_request: branches: [ main ] jobs: test: runs-on: ubuntu-latest strategy: matrix: python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13.1"] steps: - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v3 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | python -m pip install --upgrade pip pip install -e .[dev] - name: Run linters run: | black . --check isort . --check # flake8 . - name: Run tests run: | pytest tests/ --cov=src --cov-report=xml # Deployment job - uncomment and configure when PyPI uploads are needed # This job will build and upload your package to PyPI when merging to main # # deploy: # needs: test # runs-on: ubuntu-latest # if: github.event_name == 'push' && github.ref == 'refs/heads/main' # # steps: # - uses: actions/checkout@v3 # # - name: Set up Python # uses: actions/setup-python@v3 # with: # python-version: "3.8" # # - name: Build and publish # env: # TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} # TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} # run: | # pip install build twine # python -m build # twine upload dist/*