Skip to content

fix: write bridge before asset build codegen #739

fix: write bridge before asset build codegen

fix: write bridge before asset build codegen #739

Workflow file for this run

name: Tests And Linting
on:
pull_request:
push:
branches:
- main
concurrency:
group: test-${{ github.head_ref }}
cancel-in-progress: true
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Set up Node
uses: actions/setup-node@v6
with:
node-version: 22
cache: npm
- name: Install frontend deps
run: npm ci --ignore-scripts
- name: Install uv
uses: astral-sh/setup-uv@v7
- name: Set up Python
run: uv python install 3.12
- name: Create virtual environment
run: uv sync --all-extras --dev
- name: Install prek hooks
run: uv run prek install
- name: Load cached prek Dependencies
id: cached-prek-dependencies
uses: actions/cache@v6
with:
path: ~/.cache/prek/
key: prek|${{ env.pythonLocation }}|${{ hashFiles('.pre-commit-config.yaml') }}
- name: Execute prek
run: uv run prek run --show-diff-on-failure --color=always --all-files
mypy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Install uv
uses: astral-sh/setup-uv@v7
- name: Set up Python
run: uv python install 3.12
- name: Install dependencies
run: uv sync --all-extras --dev
- name: Run mypy
run: uv run mypy
pyright:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Install uv
uses: astral-sh/setup-uv@v7
- name: Set up Python
run: uv python install 3.12
- name: Install dependencies
run: uv sync --all-extras --dev
- name: Run pyright
run: uv run pyright
slotscheck:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Install uv
uses: astral-sh/setup-uv@v7
- name: Set up Python
run: uv python install 3.12
- name: Install dependencies
run: uv sync --all-extras --dev
- name: Set PYTHONPATH
run: echo "PYTHONPATH=$PWD/src/py" >> $GITHUB_ENV
- name: Run slotscheck
run: uv run slotscheck -m litestar_vite
oxc:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Set up Node
uses: actions/setup-node@v6
with:
node-version: 22
cache: npm
- name: Install dependencies
run: npm ci --ignore-scripts
- name: Check formatting
run: npm run fmt:check
- name: Lint
run: npm run lint:all
test_js:
name: "test (js ${{ matrix.node-version }})"
runs-on: ubuntu-latest
env:
LITESTAR_BYPASS_ENV_CHECK: 1
strategy:
matrix:
node-version: [22,24]
steps:
- uses: actions/checkout@v7
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v6
with:
node-version: ${{ matrix.node-version }}
- run: npm ci
- run: npm run build --if-present
- run: npm test
test_js_vite_compat:
name: "test (js, vite ${{ matrix.vite-version }})"
runs-on: ubuntu-latest
env:
LITESTAR_BYPASS_ENV_CHECK: 1
strategy:
fail-fast: false
matrix:
# The plugin supports Vite 7 + 8 (peer dep ^7 || ^8); prove both paths.
# Vite 7 emits server.hmr.* + rollupOptions; Vite 8.1+ emits server.ws.* + rolldownOptions.
vite-version: ["7", "8"]
steps:
- uses: actions/checkout@v7
- name: Use Node.js 24
uses: actions/setup-node@v6
with:
node-version: 24
- run: npm ci
- name: Install Vite ${{ matrix.vite-version }}
run: npm install "vite@^${{ matrix.vite-version }}" --no-save
- run: npm test
test_python:
name: "test (python ${{ matrix.python-version }})"
strategy:
fail-fast: true
matrix:
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
uses: ./.github/workflows/test.yml
with:
coverage: ${{ matrix.python-version == '3.12' }}
python-version: ${{ matrix.python-version }}
# ensure optional deps like sniffio are present for Litestar
timeout: 60
sonar:
needs:
- test_python
- validate
if: github.event.pull_request.head.repo.fork == false && github.repository_owner == 'litestar-org'
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v7
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: Download Artifacts
uses: actions/download-artifact@v8
with:
name: coverage-xml
- name: Fix coverage file for sonarcloud
run: sed -i "s/home\/runner\/work\/litestar-vite\/litestar-vite/github\/workspace/g" coverage.xml
# TODO: Re-enable this is configured
# - name: SonarCloud Scan
# uses: sonarsource/sonarcloud-github-action@master
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
codecov:
needs:
- test_python
- validate
runs-on: ubuntu-latest
permissions:
security-events: write
steps:
- uses: actions/checkout@v7
- uses: actions/setup-python@v6
with:
python-version: "3.12"
- name: Download Artifacts
uses: actions/download-artifact@v8
with:
name: coverage-xml
path: coverage.xml
merge-multiple: true
# - name: Combine coverage files
# run: |
# python -Im pip install coverage covdefaults
# python -Im coverage combine
# python -Im coverage xml -i
# - name: Fix coverage file name
# run: sed -i "s/home\/runner\/work\/litestar-vite\/litestar-vite/github\/workspace/g" coverage.xml
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v7
with:
files: coverage.xml
token: ${{ secrets.CODECOV_TOKEN }}
slug: litestar-org/litestar-vite
build-docs:
needs:
- validate
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v7
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y tree ffmpeg
- name: Install ttyd
run: |
sudo apt-get install -y ttyd || {
curl -fsSL -o /tmp/ttyd https://github.com/tsl0922/ttyd/releases/download/1.7.7/ttyd.x86_64
chmod +x /tmp/ttyd
sudo mv /tmp/ttyd /usr/local/bin/ttyd
}
- name: Install Go (for VHS)
uses: actions/setup-go@v6
with:
go-version: ">=1.24.0"
check-latest: true
- name: Install VHS
run: |
go install github.com/charmbracelet/vhs@latest
echo "$HOME/go/bin" >> $GITHUB_PATH
- name: Set up Node
uses: actions/setup-node@v6
with:
node-version: 22
cache: npm
- name: Install frontend dependencies
run: |
npm ci
npm run build
- name: Install uv
uses: astral-sh/setup-uv@v7
- name: Set up Python
run: uv python install 3.12
- name: Install dependencies
run: uv sync --all-extras --dev
- name: Generate demo GIFs (tapes)
env:
VHS_NO_SANDBOX: "true"
LITESTAR_BYPASS_ENV_CHECK: "1"
run: |
mkdir -p docs/_static/demos
for tape in docs/_tapes/*.tape; do
echo "Processing $tape..."
vhs "$tape"
done
- name: Build docs
run: uv run make docs
- name: Check docs links
env:
LITESTAR_DOCS_IGNORE_MISSING_EXAMPLE_OUTPUT: 1
run: uv run make docs-linkcheck
- name: Save PR number
run: |
echo "${{ github.event.number }}" > .pr_number
- name: Upload artifact
uses: actions/upload-artifact@v7
with:
name: docs-preview
path: |
docs/_build/html
.pr_number
include-hidden-files: true