Next SvelteKit Version #235
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: Validate Stats Generation | |
| on: | |
| pull_request: | |
| paths: | |
| - 'packages/stats-generator/**' | |
| - '.github/workflows/generate-stats.yml' | |
| - '.github/workflows/measure-framework.yml' | |
| - '.github/workflows/validate-stats.yml' | |
| - '.github/frameworks.json' | |
| - 'packages/app-*/**' | |
| - '!packages/app-*/ci-stats.json' | |
| - '!packages/app-*/stats/**' | |
| - 'packages/starter-*/**' | |
| - '!packages/starter-*/ci-stats.json' | |
| - '!packages/starter-*/stats/**' | |
| - '!packages/starter-*/install-stats.json' | |
| - '!packages/starter-*/build-stats.json' | |
| - '!packages/starter-*/corejs-stats.json' | |
| - '!packages/starter-*/browser-baseline-stats.json' | |
| - '!packages/starter-*/e18e-stats.json' | |
| jobs: | |
| validate: | |
| runs-on: depot-ubuntu-24.04 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - name: Setup pnpm | |
| uses: pnpm/action-setup@8912a9102ac27614460f54aedde9e1e7f9aec20d # v6.0.5 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 | |
| with: | |
| node-version: '24' | |
| cache: 'pnpm' | |
| - name: Install workspace dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Install all package dependencies | |
| run: | | |
| FRAMEWORKS=$(cat .github/frameworks.json) | |
| for PKG in $(echo "$FRAMEWORKS" | jq -r '.[].starter.package // empty, .[].app.package // empty'); do | |
| echo "Installing $PKG..." | |
| (cd packages/$PKG && pnpm install --frozen-lockfile) | |
| done | |
| - name: Run all benchmarks and validate | |
| run: | | |
| set -e | |
| echo "=== Running SSR request throughput benchmarks ===" | |
| FRAMEWORKS=$(cat .github/frameworks.json) | |
| echo "$FRAMEWORKS" | jq -c '.[] | select(.app) | select(.app.measurements | map(.type) | contains(["ssrRequestThroughput"]))' | while read -r framework; do | |
| PKG=$(echo "$framework" | jq -r '.app.package') | |
| echo "Building $PKG..." | |
| (cd packages/$PKG && pnpm build) | |
| echo "Running SSR request throughput benchmark for $PKG..." | |
| pnpm --filter @framework-tracker/stats-generator run:ssr-request-throughput $PKG | |
| done | |
| echo "" | |
| echo "=== Running SSR load benchmarks ===" | |
| FRAMEWORKS=$(cat .github/frameworks.json) | |
| echo "$FRAMEWORKS" | jq -c '.[] | select(.app) | select(.app.measurements | map(.type) | contains(["ssrLoad"]))' | while read -r framework; do | |
| PKG=$(echo "$framework" | jq -r '.app.package') | |
| echo "Building $PKG..." | |
| (cd packages/$PKG && pnpm build) | |
| echo "Running SSR load benchmark for $PKG..." | |
| pnpm --filter @framework-tracker/stats-generator run:ssr-load $PKG | |
| done | |
| echo "" | |
| echo "=== Running starter benchmarks ===" | |
| FRAMEWORKS=$(cat .github/frameworks.json) | |
| echo "$FRAMEWORKS" | jq -c '.[] | select(.starter)' | while read -r framework; do | |
| PKG=$(echo "$framework" | jq -r '.starter.package') | |
| echo "Running install benchmark for $PKG (1 run)..." | |
| pnpm --filter @framework-tracker/stats-generator run:install $PKG 1 | |
| echo "Running build benchmark for $PKG..." | |
| pnpm --filter @framework-tracker/stats-generator run:build $PKG | |
| done | |
| echo "" | |
| echo "=== Running e18e dependency analysis ===" | |
| FRAMEWORKS=$(cat .github/frameworks.json) | |
| echo "$FRAMEWORKS" | jq -c '.[] | select(.starter) | select(.starter.measurements | map(.type) | contains(["dependencies"]))' | while read -r framework; do | |
| PKG=$(echo "$framework" | jq -r '.starter.package') | |
| echo "Running e18e analysis for $PKG..." | |
| (cd packages/$PKG && npx @e18e/cli@0.5.0 analyze --json > e18e-stats.json || true) | |
| done | |
| echo "" | |
| echo "=== Running browser baseline scans ===" | |
| FRAMEWORKS=$(cat .github/frameworks.json) | |
| echo "$FRAMEWORKS" | jq -c '.[] | select(.starter) | select(.starter.measurements | map(.type) | contains(["browserBaseline"]))' | while read -r framework; do | |
| PKG=$(echo "$framework" | jq -r '.starter.package') | |
| echo "Scanning browser baseline requirements for $PKG..." | |
| pnpm --filter @framework-tracker/stats-generator run:browser-baseline $PKG | |
| done | |
| echo "" | |
| echo "=== Running client-side rendered benchmarks ===" | |
| FRAMEWORKS=$(cat .github/frameworks.json) | |
| echo "$FRAMEWORKS" | jq -c '.[] | select(.app) | select(.app.measurements | map(.type) | contains(["clientSideRendered"]))' | while read -r framework; do | |
| PKG=$(echo "$framework" | jq -r '.app.package') | |
| echo "Building client-side rendered app for $PKG..." | |
| (cd packages/$PKG && pnpm build) | |
| echo "Running client-side rendered benchmark for $PKG..." | |
| pnpm --filter @framework-tracker/stats-generator run:client-side-rendered $PKG | |
| done | |
| echo "" | |
| echo "=== Running server-side rendered benchmarks ===" | |
| FRAMEWORKS=$(cat .github/frameworks.json) | |
| echo "$FRAMEWORKS" | jq -c '.[] | select(.app) | select(.app.measurements | map(.type) | contains(["serverSideRendered"]))' | while read -r framework; do | |
| PKG=$(echo "$framework" | jq -r '.app.package') | |
| echo "Building server-side rendered app for $PKG..." | |
| (cd packages/$PKG && pnpm build) | |
| echo "Running server-side rendered benchmark for $PKG..." | |
| pnpm --filter @framework-tracker/stats-generator run:server-side-rendered $PKG | |
| done | |
| echo "" | |
| echo "=== Validating all outputs ===" | |
| pnpm --filter @framework-tracker/stats-generator validate |