Skip to content

feat: Add RFC 8414 OAuth 2.0 Authorization Server Metadata endpoint #2305

feat: Add RFC 8414 OAuth 2.0 Authorization Server Metadata endpoint

feat: Add RFC 8414 OAuth 2.0 Authorization Server Metadata endpoint #2305

Workflow file for this run

name: Test
on: [push, pull_request]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
test-package:
name: Test Package (Python ${{ matrix.python-version }}, Django ${{ matrix.django-version }})
runs-on: ubuntu-latest
permissions:
id-token: write # Required for Codecov OIDC token
strategy:
fail-fast: false
matrix:
python-version:
- '3.10'
- '3.11'
- '3.12'
- '3.13'
django-version:
- '4.2'
- '5.0'
- '5.1'
- '5.2'
- 'main'
## include/exclude version combinations, typically for the newest and oldest django/python versions.
## python-version and django-version should be selected such that they minimize the number of include
## and exclude entries.
include:
- { django-version: '5.2', python-version: '3.14' }
- { django-version: '6.0', python-version: '3.12' }
- { django-version: '6.0', python-version: '3.13' }
- { django-version: '6.0', python-version: '3.14' }
- { django-version: 'main', python-version: '3.14' }
exclude:
- { django-version: '4.2', python-version: '3.13' }
- { django-version: '5.0', python-version: '3.13' }
- { django-version: 'main', python-version: '3.10' }
- { django-version: 'main', python-version: '3.11' }
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Get pip cache dir
id: pip-cache
run: |
echo "::set-output name=dir::$(pip cache dir)"
- name: Cache
uses: actions/cache@v4
with:
path: ${{ steps.pip-cache.outputs.dir }}
key:
${{ matrix.python-version }}-v1-${{ hashFiles('**/pyproject.toml') }}-${{ hashFiles('**/tox.ini') }}
restore-keys: |
${{ matrix.python-version }}-v1-
- name: Install Python dependencies
run: |
python -m pip install --upgrade pip
python -m pip install --upgrade tox tox-gh-actions
- name: Tox tests
run: |
tox -v
env:
DJANGO: ${{ matrix.django-version }}
- name: Upload coverage
uses: codecov/codecov-action@v5
with:
name: Python ${{ matrix.python-version }}
use_oidc: true
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.14
uses: actions/setup-python@v5
with:
python-version: '3.14'
- name: Install tox
run: python -m pip install --upgrade tox
- name: Run ruff checks
run: tox -e lint
sphinxlint:
name: Sphinx Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install tox
run: python -m pip install --upgrade tox
- name: Run sphinx-lint
run: tox -e sphinxlint
migrations:
name: Check Migrations
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install tox
run: python -m pip install --upgrade tox
- name: Check no missing migrations
run: tox -e migrations
env:
DJANGO: '5.2'
migrate_swapped:
name: Migrate Swapped Models
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install tox
run: python -m pip install --upgrade tox
- name: Run swapped model migrations
run: tox -e migrate_swapped
env:
DJANGO: '5.2'
multi-db:
name: Multi-DB Tests (Python 3.14, Django 4.2)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.14
uses: actions/setup-python@v5
with:
python-version: '3.14'
- name: Install tox
run: python -m pip install --upgrade tox
- name: Run multi-db tests
run: tox -e py314-dj42-multi-db
test-demo-rp:
name: Test Demo Relying Party
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
node-version:
- "22.x"
- "24.x"
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up NodeJS
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
run: npm install
working-directory: tests/app/rp
- name: Run Lint
run: npm run lint
working-directory: tests/app/rp
- name: Run build
run: npm run build
working-directory: tests/app/rp
codecov-notify:
needs:
- test-package
- test-demo-rp
runs-on: ubuntu-latest
name: Codecov Notify
permissions:
id-token: write # Required for Codecov OIDC token
steps:
# - tell codecov to send notifications now that all jobs are complete.
# without this, codecov may notify before all coverage reports have been uploaded.
# `codecov: notify: manual_trigger: true` must be set in codecov.yml, to prevent
# processing on every upload.
# - preferred to after_n_builds so we don't need to update that number every
# time we add/remove jobs.
- name: Notify Codecov
uses: codecov/codecov-action@v5
with:
run_command: 'send-notifications'
use_oidc: true
success:
needs:
- test-package
- test-demo-rp
- codecov-notify
- lint
- sphinxlint
- migrations
- migrate_swapped
# nees to fix multidb tests, not blocking success for now
# so we can get the lint and migrations checks in place.
# - multi-db
runs-on: ubuntu-latest
name: Test successful
steps:
- name: Success
run: echo Test successful