name: Continuous integration on: push: pull_request: concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref_name }} cancel-in-progress: true jobs: build: runs-on: ubuntu-24.04 timeout-minutes: 120 steps: - name: Checkout uses: actions/checkout@v6 - name: Style checks via pre-commit uses: pre-commit/action@v3.0.1 - name: Custom RST checks (check-rst.sh) run: | bash ./_tools/check-rst.sh - name: Get Python version id: pythonv run: | echo "PYTHON_VERSION=$(python --version)" >> $GITHUB_OUTPUT - name: Restore cached virtualenv uses: actions/cache/restore@v5 with: key: venv-${{ runner.os }}-${{ steps.pythonv.outputs.PYTHON_VERSION }}-${{ hashFiles('requirements.txt') }} path: .venv - name: Install dependencies run: | python -m venv .venv source .venv/bin/activate python -m pip install -r requirements.txt echo "$VIRTUAL_ENV/bin" >> $GITHUB_PATH echo "VIRTUAL_ENV=$VIRTUAL_ENV" >> $GITHUB_ENV - name: Save virtualenv cache uses: actions/cache/save@v5 with: key: venv-${{ runner.os }}-${{ steps.pythonv.outputs.PYTHON_VERSION }}-${{ hashFiles('requirements.txt') }} path: .venv # Use dummy builder to improve performance as we don't need the generated HTML in this workflow. - name: Sphinx build run: | source .venv/bin/activate make SPHINXOPTS='--color -j 4 -W' dummy