mirror of
https://github.com/encode/django-rest-framework.git
synced 2026-02-18 05:00:33 +03:00
102 lines
2.4 KiB
YAML
102 lines
2.4 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
pull_request:
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
tests:
|
|
name: Python ${{ matrix.python-version }}
|
|
runs-on: ubuntu-24.04
|
|
|
|
strategy:
|
|
matrix:
|
|
python-version:
|
|
- '3.10'
|
|
- '3.11'
|
|
- '3.12'
|
|
- '3.13'
|
|
- '3.14'
|
|
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
|
|
- uses: actions/setup-python@v6
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
allow-prereleases: true
|
|
cache: 'pip'
|
|
|
|
- name: Upgrade packaging tools
|
|
run: python -m pip install --upgrade pip setuptools virtualenv wheel
|
|
|
|
- name: Install dependencies
|
|
run: python -m pip install --upgrade 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.13' }}
|
|
run: |
|
|
tox -e base,dist,docs
|
|
|
|
- name: Upload coverage
|
|
uses: codecov/codecov-action@v5
|
|
with:
|
|
env_vars: TOXENV,DJANGO
|
|
|
|
test-docs:
|
|
name: Test documentation links
|
|
runs-on: ubuntu-24.04
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
|
|
- uses: actions/setup-python@v6
|
|
with:
|
|
python-version: '3.13'
|
|
|
|
- name: Install dependencies
|
|
run: pip install --group docs
|
|
|
|
# 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"
|
|
|
|
codeql:
|
|
name: CodeQL Security Scan
|
|
runs-on: ubuntu-latest
|
|
|
|
permissions:
|
|
security-events: write
|
|
contents: read
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Initialize CodeQL
|
|
uses: github/codeql-action/init@v3
|
|
with:
|
|
languages: python
|
|
queries: security-and-quality
|
|
|
|
# Para Python NO hace falta build ni dependencias
|
|
# CodeQL analiza el código fuente directamente
|
|
|
|
- name: Perform CodeQL Analysis
|
|
uses: github/codeql-action/analyze@v3
|