Skip to content

build(deps-dev): bump the development-dependencies group across 1 dir… #379

build(deps-dev): bump the development-dependencies group across 1 dir…

build(deps-dev): bump the development-dependencies group across 1 dir… #379

Workflow file for this run

name: CI
on:
push:
branches: [main, master]
pull_request:
branches: [main, master]
jobs:
python:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Setup Python
uses: actions/setup-python@v7
with:
python-version: '3.12'
cache: pip
cache-dependency-path: scripts/requirements.txt
- name: Install Python dependencies
run: python -m pip install --require-hashes -r scripts/requirements.txt
- name: Validate classifier
run: |
python -m compileall -q scripts
PYTHONPATH=scripts python -m unittest scripts/test_classify_problems.py
python scripts/classify_problems.py --help > /dev/null
node24-quality:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Setup Node.js
uses: actions/setup-node@v7
with:
node-version: '24'
- name: Install pnpm
uses: pnpm/action-setup@v6
with:
version: 10.34.1
run_install: false
- name: Get pnpm store directory
shell: bash
run: echo "STORE_PATH=$(pnpm store path --silent)" >> "$GITHUB_ENV"
- name: Setup pnpm cache
uses: actions/cache@v6
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-node24-${{ hashFiles('**/pnpm-lock.yaml') }}
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Check code formatting
run: pnpm run lint
- name: Lint
run: pnpm run lint:es
- name: Sync SvelteKit
run: pnpm exec svelte-kit sync
env:
PUBLIC_SUPABASE_URL: http://localhost
PUBLIC_SUPABASE_PUBLISHABLE_KEY: placeholder
- name: Run svelte-check
run: pnpm run check
env:
PUBLIC_SUPABASE_URL: http://localhost
PUBLIC_SUPABASE_PUBLISHABLE_KEY: placeholder
node24-unit-coverage:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Setup Node.js
uses: actions/setup-node@v7
with:
node-version: '24'
- name: Install pnpm
uses: pnpm/action-setup@v6
with:
version: 10.34.1
run_install: false
- name: Get pnpm store directory
shell: bash
run: echo "STORE_PATH=$(pnpm store path --silent)" >> "$GITHUB_ENV"
- name: Setup pnpm cache
uses: actions/cache@v6
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-node24-${{ hashFiles('**/pnpm-lock.yaml') }}
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Run unit tests with coverage
run: pnpm run test:coverage
env:
PUBLIC_SUPABASE_URL: http://localhost
PUBLIC_SUPABASE_PUBLISHABLE_KEY: placeholder
node24-build-performance:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Setup Node.js
uses: actions/setup-node@v7
with:
node-version: '24'
- name: Install pnpm
uses: pnpm/action-setup@v6
with:
version: 10.34.1
run_install: false
- name: Get pnpm store directory
shell: bash
run: echo "STORE_PATH=$(pnpm store path --silent)" >> "$GITHUB_ENV"
- name: Setup pnpm cache
uses: actions/cache@v6
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-node24-${{ hashFiles('**/pnpm-lock.yaml') }}
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build
run: pnpm run build
env:
PUBLIC_SUPABASE_URL: http://localhost
PUBLIC_SUPABASE_PUBLISHABLE_KEY: placeholder
- name: Check performance budgets without rebuilding
run: pnpm run check:performance
node24-e2e-mocked:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
project: [mocked-desktop, mocked-mobile]
steps:
- uses: actions/checkout@v7
- name: Setup Node.js
uses: actions/setup-node@v7
with:
node-version: '24'
- name: Install pnpm
uses: pnpm/action-setup@v6
with:
version: 10.34.1
run_install: false
- name: Get pnpm store directory
shell: bash
run: echo "STORE_PATH=$(pnpm store path --silent)" >> "$GITHUB_ENV"
- name: Setup pnpm cache
uses: actions/cache@v6
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-node24-${{ hashFiles('**/pnpm-lock.yaml') }}
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Get Playwright version
shell: bash
run: |
echo "PLAYWRIGHT_VERSION=$(node -p "require('@playwright/test/package.json').version")" >> "$GITHUB_ENV"
- name: Cache Playwright Chromium headless shell
uses: actions/cache@v6
with:
path: ~/.cache/ms-playwright
key: ${{ runner.os }}-playwright-${{ env.PLAYWRIGHT_VERSION }}-headless-shell
- name: Install Playwright Chromium headless shell and system dependencies
run: pnpm exec playwright install --with-deps --only-shell chromium
- name: Run Playwright mocked project
run: pnpm exec playwright test --project="${{ matrix.project }}" --workers=1
env:
PUBLIC_SUPABASE_URL: http://localhost
PUBLIC_SUPABASE_PUBLISHABLE_KEY: placeholder
- name: Upload Playwright failure artifacts
if: ${{ failure() && !cancelled() }}
uses: actions/upload-artifact@v7
with:
name: playwright-node24-${{ matrix.project }}
path: |
playwright-report/
test-results/
if-no-files-found: ignore
retention-days: 7
node24-e2e-live:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
project: [live-desktop-smoke, live-mobile-smoke]
steps:
- name: Detect live Supabase configuration
id: live-config
shell: bash
env:
LIVE_SUPABASE_URL: ${{ secrets.PUBLIC_SUPABASE_URL }}
LIVE_SUPABASE_PUBLISHABLE_KEY: ${{ secrets.PUBLIC_SUPABASE_PUBLISHABLE_KEY }}
run: |
if [[ -n "$LIVE_SUPABASE_URL" && -n "$LIVE_SUPABASE_PUBLISHABLE_KEY" ]]; then
echo "configured=true" >> "$GITHUB_OUTPUT"
else
echo "configured=false" >> "$GITHUB_OUTPUT"
fi
- uses: actions/checkout@v7
if: steps.live-config.outputs.configured == 'true'
- name: Setup Node.js
if: steps.live-config.outputs.configured == 'true'
uses: actions/setup-node@v7
with:
node-version: '24'
- name: Install pnpm
if: steps.live-config.outputs.configured == 'true'
uses: pnpm/action-setup@v6
with:
version: 10.34.1
run_install: false
- name: Get pnpm store directory
if: steps.live-config.outputs.configured == 'true'
shell: bash
run: echo "STORE_PATH=$(pnpm store path --silent)" >> "$GITHUB_ENV"
- name: Setup pnpm cache
if: steps.live-config.outputs.configured == 'true'
uses: actions/cache@v6
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-node24-${{ hashFiles('**/pnpm-lock.yaml') }}
- name: Install dependencies
if: steps.live-config.outputs.configured == 'true'
run: pnpm install --frozen-lockfile
- name: Get Playwright version
if: steps.live-config.outputs.configured == 'true'
shell: bash
run: |
echo "PLAYWRIGHT_VERSION=$(node -p "require('@playwright/test/package.json').version")" >> "$GITHUB_ENV"
- name: Cache Playwright Chromium headless shell
if: steps.live-config.outputs.configured == 'true'
uses: actions/cache@v6
with:
path: ~/.cache/ms-playwright
key: ${{ runner.os }}-playwright-${{ env.PLAYWRIGHT_VERSION }}-headless-shell
- name: Install Playwright Chromium headless shell and system dependencies
if: steps.live-config.outputs.configured == 'true'
run: pnpm exec playwright install --with-deps --only-shell chromium
- name: Run Playwright live read-only Supabase project
if: steps.live-config.outputs.configured == 'true'
run: pnpm exec playwright test --project="${{ matrix.project }}" --workers=1
env:
SUPABASE_SMOKE: '1'
E2E_LIVE_ONLY: '1'
PUBLIC_SUPABASE_URL: ${{ secrets.PUBLIC_SUPABASE_URL }}
PUBLIC_SUPABASE_PUBLISHABLE_KEY: ${{ secrets.PUBLIC_SUPABASE_PUBLISHABLE_KEY }}
- name: Upload Playwright failure artifacts
if: ${{ failure() && !cancelled() }}
uses: actions/upload-artifact@v7
with:
name: playwright-node24-${{ matrix.project }}
path: |
playwright-report/
test-results/
if-no-files-found: ignore
retention-days: 7
# Non-blocking Node 26 compatibility probe. Its essential scope remains
# dependency installation, Svelte sync/check, unit tests, and a production build.
node26-compat:
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@v7
- name: Setup Node.js
uses: actions/setup-node@v7
with:
node-version: '26'
- name: Install pnpm
uses: pnpm/action-setup@v6
with:
version: 10.34.1
run_install: false
- name: Get pnpm store directory
shell: bash
run: echo "STORE_PATH=$(pnpm store path --silent)" >> "$GITHUB_ENV"
- name: Setup pnpm cache
uses: actions/cache@v6
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-node26-${{ hashFiles('**/pnpm-lock.yaml') }}
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Sync SvelteKit
run: pnpm exec svelte-kit sync
env:
PUBLIC_SUPABASE_URL: http://localhost
PUBLIC_SUPABASE_PUBLISHABLE_KEY: placeholder
- name: Run svelte-check
run: pnpm run check
env:
PUBLIC_SUPABASE_URL: http://localhost
PUBLIC_SUPABASE_PUBLISHABLE_KEY: placeholder
- name: Run unit tests
run: pnpm run test
env:
PUBLIC_SUPABASE_URL: http://localhost
PUBLIC_SUPABASE_PUBLISHABLE_KEY: placeholder
- name: Build
run: pnpm run build
env:
PUBLIC_SUPABASE_URL: http://localhost
PUBLIC_SUPABASE_PUBLISHABLE_KEY: placeholder
build:
name: build
if: ${{ always() }}
needs:
- python
- node24-quality
- node24-unit-coverage
- node24-build-performance
- node24-e2e-mocked
- node24-e2e-live
runs-on: ubuntu-latest
steps:
- name: Require every Node 24 and Python job to succeed
shell: bash
env:
REQUIRED_RESULTS: ${{ toJSON(needs) }}
run: jq -e 'all(.[]; .result == "success")' <<< "$REQUIRED_RESULTS" > /dev/null