fix: write bridge before asset build codegen #739
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |