name: Tests on: pull_request: paths-ignore: - 'docs/**' push: branches: - main paths-ignore: - 'docs/**' concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true permissions: contents: read jobs: windows: runs-on: windows-latest strategy: matrix: python-version: - '3.14' name: Windows, SQLite, Python ${{ matrix.python-version }} timeout-minutes: 60 steps: - name: Checkout uses: actions/checkout@v7 with: persist-credentials: false - name: Set up Python uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} cache: 'pip' cache-dependency-path: 'tests/requirements/py3.txt' - name: Install gettext run: choco install gettext --no-progress -y - name: Install and upgrade packaging tools run: python -m pip install --upgrade pip wheel - run: python -m pip install -r tests/requirements/py3.txt -e . - name: Run tests run: python -Wall tests/runtests.py -v2 ubuntu-free-threading: runs-on: ubuntu-latest strategy: fail-fast: false matrix: python-version: - '3.14t' name: Ubuntu, SQLite, Python ${{ matrix.python-version }} timeout-minutes: 60 steps: - name: Checkout uses: actions/checkout@v7 with: persist-credentials: false - name: Set up Python uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} cache: 'pip' cache-dependency-path: 'tests/requirements/py3-free-threading.txt' - name: Install and upgrade packaging tools run: python -m pip install --upgrade pip wheel - run: python -m pip install -r tests/requirements/py3-free-threading.txt -e . - name: Show GIL status run: python -c "import sys; print('GIL enabled:', sys._is_gil_enabled())" - name: Run tests run: python -Wall tests/runtests.py -v2 javascript-tests: runs-on: ubuntu-latest name: JavaScript tests timeout-minutes: 60 steps: - name: Checkout uses: actions/checkout@v7 with: persist-credentials: false - name: Set up Node.js uses: actions/setup-node@v6 with: # Transitive dependency of puppeteer (extract-zip) broken on 24.16 # https://github.com/puppeteer/puppeteer/issues/15071 node-version: '24.15.0' cache: 'npm' cache-dependency-path: '**/package.json' - run: npm install - run: npm test scripts-tests: runs-on: ubuntu-latest name: Scripts tests timeout-minutes: 60 steps: - name: Checkout uses: actions/checkout@v7 with: persist-credentials: false - name: Set up Python uses: actions/setup-python@v6 with: python-version: '3.14' - run: python -m unittest discover -v -s scripts/