Skip to content

Fix broadcasting private-channel auth bypass and /broadcasting/auth 404 #900

Fix broadcasting private-channel auth bypass and /broadcasting/auth 404

Fix broadcasting private-channel auth bypass and /broadcasting/auth 404 #900

Workflow file for this run

name: Test
on:
push:
branches: [ main ]
pull_request:
branches: [ "**" ]
jobs:
tests:
name: Pytest (Python ${{ matrix.python-version }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: [ "3.12", "3.13", "3.14", "3.15" ]
env:
DB_HOST: 127.0.0.1
DB_PORT: 3306
DB_DATABASE: database_app_test
DB_USERNAME: app
DB_PASSWORD: secret
POSTGRES_PORT: 15432
UV_PYTHON: ${{ matrix.python-version }}
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v5
- name: Set up Python
run: uv python install ${{ matrix.python-version }}
- name: Start MySQL
run: docker compose -f docker-compose.yml up -d --wait
- name: Install dependencies (fastapi_startkit)
working-directory: fastapi_startkit
run: uv sync --group dev --extra database --extra sqlite --extra fastapi --extra vite --extra postgres
- name: Run tests (fastapi_startkit)
working-directory: fastapi_startkit
run: uv run pytest tests/ -v --cov --cov-report=xml
- name: Upload coverage to Codecov
if: matrix.python-version == '3.13'
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
slug: fastapi-startkit/fastapi-startkit-framework
files: fastapi_startkit/coverage.xml
flags: fastapi_startkit
fail_ci_if_error: false
- name: Stop MySQL
if: always()
run: docker compose -f docker-compose.yml down
examples:
name: Examples
runs-on: ubuntu-latest
env:
DB_HOST: 127.0.0.1
DB_PORT: 3306
DB_DATABASE: database_app_test
DB_USERNAME: app
DB_PASSWORD: secret
POSTGRES_PORT: 15432
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v5
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.13"
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Start MySQL
run: docker compose -f docker-compose.yml up -d --wait
# ── example/config-app ────────────────────────────────────────────────
- name: Install dependencies (config-app)
working-directory: example/config-app
run: uv sync
- name: Copy .env.example to .env (config-app)
working-directory: example/config-app
run: cp .env.example .env
- name: Run tests (config-app)
working-directory: example/config-app
run: uv run pytest tests/ -v
# ── example/console-app ───────────────────────────────────────────────
- name: Smoke test (console-app)
working-directory: example/console-app
env:
APP_ENV: testing
run: |
uv sync
uv run python artisan list
uv run python artisan hello World
# ── example/database-app ──────────────────────────────────────────────
- name: Install dependencies (database-app)
working-directory: example/database-app
run: uv sync
- name: Run tests (database-app)
working-directory: example/database-app
run: uv run pytest tests/ -v
# ── example/agents ────────────────────────────────────────────────────
- name: Install dependencies (agents)
working-directory: example/agents
run: uv sync
- name: Build frontend assets (agents)
working-directory: example/agents
run: |
npm ci
npm run build
- name: Copy .env.example to .env (agents)
working-directory: example/agents
run: cp .env.example .env
# The job-level DB_* vars point at MySQL (3306); the agents app uses
# the Postgres service from docker-compose, published on 15432.
- name: Run migrations (agents)
working-directory: example/agents
env:
DB_PORT: 15432
run: uv run python artisan db:migrate
- name: Run tests (agents)
working-directory: example/agents
env:
DB_PORT: 15432
run: uv run pytest tests/ -v
# ── example/mcp-authentication ────────────────────────────────────────
- name: Install dependencies (mcp-authentication)
working-directory: example/mcp-authentication
run: uv sync
- name: Run tests (mcp-authentication)
working-directory: example/mcp-authentication
env:
DB_DATABASE: databases/testing.db
run: uv run pytest tests/ -v
- name: Stop MySQL
if: always()
run: docker compose -f docker-compose.yml down