name: Run unit tests on: pull_request: push: branches: - main tags: workflow_dispatch: schedule: # Run every Sunday at 03:53 UTC - cron: 53 3 * * 0 jobs: tests: runs-on: ubuntu-latest strategy: matrix: python-version: ["3.11", "3.12", "3.13", "3.14"] steps: - uses: actions/checkout@v5 with: fetch-depth: 0 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} - name: Install FFmpeg & Poppler run: | sudo apt update sudo apt install ffmpeg poppler-utils ffmpeg -version - name: Install Tox run: python -m pip install tox tox-gh-actions coverage - name: Run Tox run: tox run - name: Convert coverage run: python -m coverage xml - name: Upload coverage to Codecov uses: codecov/codecov-action@v5 with: fail_ci_if_error: true token: ${{ secrets.CODECOV_TOKEN }}