name: Test on: [push, pull_request, workflow_dispatch] permissions: {} env: FORCE_COLOR: 1 jobs: integration: name: Integration test runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 with: persist-credentials: false - uses: actions/setup-python@v6 with: python-version: "3.13" - name: Set up requirements run: | python -m pip install --upgrade pip python -m pip install -r requirements.txt - name: Build documentation run: > python ./build_docs.py --quick --build-root ./build_root --www-root ./www --log-directory ./logs --group "$(id -g)" --skip-cache-invalidation --languages en --branches 3.14 - name: Upload documentation uses: actions/upload-artifact@v7 with: name: www-root path: ./www retention-days: 2 unit: name: Unit tests runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: python-version: ["3.13", "3.14", "3.15"] os: [windows-latest, macos-latest, ubuntu-latest] steps: - uses: actions/checkout@v6 with: persist-credentials: false - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} allow-prereleases: true - name: Install uv uses: hynek/setup-cached-uv@v2 - name: Tox tests run: uvx --with tox-uv tox -e py - name: Upload coverage uses: codecov/codecov-action@v5 with: flags: ${{ matrix.os }} name: Python ${{ matrix.python-version }} token: ${{ secrets.CODECOV_ORG_TOKEN }}