name: CI on: push: branches: - master pull_request: jobs: tests: name: Python ${{ matrix.python-version }} runs-on: ubuntu-20.04 strategy: matrix: python-version: - '3.8' - '3.9' - '3.10' - '3.11' - '3.12' - '3.13' steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} cache: 'pip' cache-dependency-path: 'requirements/*.txt' - name: Upgrade packaging tools run: python -m pip install --upgrade pip setuptools virtualenv wheel - name: Install dependencies run: python -m pip install --upgrade codecov tox - name: Run tox targets for ${{ matrix.python-version }} run: tox run -f py$(echo ${{ matrix.python-version }} | tr -d . | cut -f 1 -d '-') - name: Run extra tox targets if: ${{ matrix.python-version == '3.9' }} run: | tox -e base,dist,docs - name: Upload coverage run: | codecov -e TOXENV,DJANGO test-docs: name: Test documentation links runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: '3.9' - name: Install dependencies run: pip install -r requirements/requirements-documentation.txt # Start mkdocs server and wait for it to be ready - run: mkdocs serve & - run: WAIT_TIME=0 && until nc -vzw 2 localhost 8000 || [ $WAIT_TIME -eq 5 ]; do sleep $(( WAIT_TIME++ )); done - run: if [ $WAIT_TIME == 5 ]; then echo cannot start mkdocs server on http://localhost:8000; exit 1; fi - name: Check links continue-on-error: true run: pylinkvalidate.py -P http://localhost:8000/ - run: echo "Done"