Skip to content

CI script improvements#1826

Merged
pranaygp merged 2 commits into
mainfrom
pranaygp/fervent-noyce-142694
Apr 22, 2026
Merged

CI script improvements#1826
pranaygp merged 2 commits into
mainfrom
pranaygp/fervent-noyce-142694

Conversation

@pranaygp
Copy link
Copy Markdown
Contributor

No description provided.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@pranaygp pranaygp requested a review from a team as a code owner April 21, 2026 23:11
Copilot AI review requested due to automatic review settings April 21, 2026 23:11
@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Apr 21, 2026

🦋 Changeset detected

Latest commit: 7f5b583

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 0 packages

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented Apr 21, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
example-nextjs-workflow-turbopack Ready Ready Preview, Comment Apr 22, 2026 3:34am
example-nextjs-workflow-webpack Ready Ready Preview, Comment Apr 22, 2026 3:34am
example-workflow Ready Ready Preview, Comment Apr 22, 2026 3:34am
workbench-astro-workflow Ready Ready Preview, Comment Apr 22, 2026 3:34am
workbench-express-workflow Ready Ready Preview, Comment Apr 22, 2026 3:34am
workbench-fastify-workflow Ready Ready Preview, Comment Apr 22, 2026 3:34am
workbench-hono-workflow Ready Ready Preview, Comment Apr 22, 2026 3:34am
workbench-nitro-workflow Ready Ready Preview, Comment Apr 22, 2026 3:34am
workbench-nuxt-workflow Ready Ready Preview, Comment Apr 22, 2026 3:34am
workbench-sveltekit-workflow Ready Ready Preview, Comment Apr 22, 2026 3:34am
workbench-vite-workflow Ready Ready Preview, Comment Apr 22, 2026 3:34am
workflow-docs Ready Ready Preview, Comment, Open in v0 Apr 22, 2026 3:34am
workflow-swc-playground Ready Ready Preview, Comment Apr 22, 2026 3:34am
workflow-web Ready Ready Preview, Comment Apr 22, 2026 3:34am

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 21, 2026

🧪 E2E Test Results

Some tests failed

Summary

Passed Failed Skipped Total
✅ 💻 Local Development 1054 0 86 1140
❌ 📦 Local Production 1053 1 86 1140
❌ 🐘 Local Postgres 1052 2 86 1140
✅ 🪟 Windows 95 0 0 95
✅ 📋 Other 267 0 18 285
Total 3521 3 276 3800

❌ Failed Tests

📦 Local Production (1 failed)

vite-stable (1 failed):

  • distributedAbortController - reconnect to existing controller
🐘 Local Postgres (2 failed)

nuxt-stable (2 failed):

  • fibonacciWorkflow - recursive workflow composition via start()
  • health check (queue-based) - workflow and step endpoints respond to health check messages

Details by Category

✅ 💻 Local Development
App Passed Failed Skipped
✅ astro-stable 89 0 6
✅ express-stable 89 0 6
✅ fastify-stable 89 0 6
✅ hono-stable 89 0 6
✅ nextjs-turbopack-canary 76 0 19
✅ nextjs-turbopack-stable 95 0 0
✅ nextjs-webpack-canary 76 0 19
✅ nextjs-webpack-stable 95 0 0
✅ nitro-stable 89 0 6
✅ nuxt-stable 89 0 6
✅ sveltekit-stable 89 0 6
✅ vite-stable 89 0 6
❌ 📦 Local Production
App Passed Failed Skipped
✅ astro-stable 89 0 6
✅ express-stable 89 0 6
✅ fastify-stable 89 0 6
✅ hono-stable 89 0 6
✅ nextjs-turbopack-canary 76 0 19
✅ nextjs-turbopack-stable 95 0 0
✅ nextjs-webpack-canary 76 0 19
✅ nextjs-webpack-stable 95 0 0
✅ nitro-stable 89 0 6
✅ nuxt-stable 89 0 6
✅ sveltekit-stable 89 0 6
❌ vite-stable 88 1 6
❌ 🐘 Local Postgres
App Passed Failed Skipped
✅ astro-stable 89 0 6
✅ express-stable 89 0 6
✅ fastify-stable 89 0 6
✅ hono-stable 89 0 6
✅ nextjs-turbopack-canary 76 0 19
✅ nextjs-turbopack-stable 95 0 0
✅ nextjs-webpack-canary 76 0 19
✅ nextjs-webpack-stable 95 0 0
✅ nitro-stable 89 0 6
❌ nuxt-stable 87 2 6
✅ sveltekit-stable 89 0 6
✅ vite-stable 89 0 6
✅ 🪟 Windows
App Passed Failed Skipped
✅ nextjs-turbopack 95 0 0
✅ 📋 Other
App Passed Failed Skipped
✅ e2e-local-dev-nest-stable 89 0 6
✅ e2e-local-postgres-nest-stable 89 0 6
✅ e2e-local-prod-nest-stable 89 0 6

📋 View full workflow run


Some E2E test jobs failed:

  • Vercel Prod: failure
  • Local Dev: success
  • Local Prod: failure
  • Local Postgres: failure
  • Windows: success

Check the workflow run for details.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 21, 2026

📊 Benchmark Results

📈 Comparing against baseline from main branch. Green 🟢 = faster, Red 🔺 = slower.

workflow with no steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Express 0.044s (-1.6%) 1.005s (~) 0.962s 10 1.00x
💻 Local Nitro 0.045s (+3.5%) 1.005s (~) 0.960s 10 1.02x
💻 Local Next.js (Turbopack) 0.048s 1.005s 0.957s 10 1.10x
🐘 Postgres Nitro 0.056s (-41.1% 🟢) 1.010s (-3.2%) 0.954s 10 1.29x
🐘 Postgres Next.js (Turbopack) 0.057s 1.010s 0.953s 10 1.30x
🐘 Postgres Express 0.060s (+4.3%) 1.009s (~) 0.949s 10 1.39x
workflow with 1 step

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Next.js (Turbopack) 1.124s 2.006s 0.881s 10 1.00x
💻 Local Express 1.126s (~) 2.006s (~) 0.880s 10 1.00x
💻 Local Nitro 1.131s (~) 2.006s (~) 0.875s 10 1.01x
🐘 Postgres Next.js (Turbopack) 1.136s 2.010s 0.874s 10 1.01x
🐘 Postgres Nitro 1.144s (~) 2.009s (~) 0.865s 10 1.02x
🐘 Postgres Express 1.147s (~) 2.010s (~) 0.863s 10 1.02x
workflow with 10 sequential steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Next.js (Turbopack) 10.798s 11.024s 0.226s 3 1.00x
🐘 Postgres Nitro 10.854s (~) 11.021s (~) 0.167s 3 1.01x
🐘 Postgres Next.js (Turbopack) 10.883s 11.023s 0.140s 3 1.01x
🐘 Postgres Express 10.920s (~) 11.024s (~) 0.104s 3 1.01x
💻 Local Express 10.930s (~) 11.023s (~) 0.093s 3 1.01x
💻 Local Nitro 10.938s (~) 11.023s (~) 0.085s 3 1.01x
workflow with 25 sequential steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Next.js (Turbopack) 14.467s 15.025s 0.558s 4 1.00x
🐘 Postgres Nitro 14.495s (-0.7%) 15.020s (~) 0.525s 4 1.00x
🐘 Postgres Express 14.545s (~) 15.024s (~) 0.479s 4 1.01x
💻 Local Next.js (Turbopack) 14.672s 15.029s 0.357s 4 1.01x
💻 Local Express 14.953s (~) 15.029s (~) 0.076s 4 1.03x
💻 Local Nitro 15.014s (~) 15.280s (-4.7%) 0.266s 4 1.04x
workflow with 50 sequential steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 13.950s (~) 14.307s (~) 0.357s 7 1.00x
🐘 Postgres Express 14.041s (~) 14.734s (+1.0%) 0.693s 7 1.01x
🐘 Postgres Next.js (Turbopack) 14.091s 15.021s 0.930s 6 1.01x
💻 Local Next.js (Turbopack) 16.051s 16.699s 0.648s 6 1.15x
💻 Local Express 16.646s (~) 17.030s (~) 0.384s 6 1.19x
💻 Local Nitro 16.846s (~) 17.031s (~) 0.185s 6 1.21x
Promise.all with 10 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Next.js (Turbopack) 1.223s 2.009s 0.785s 15 1.00x
🐘 Postgres Nitro 1.254s (-1.6%) 2.009s (~) 0.754s 15 1.03x
🐘 Postgres Express 1.281s (+1.7%) 2.011s (~) 0.729s 15 1.05x
💻 Local Express 1.522s (+2.2%) 2.005s (~) 0.483s 15 1.24x
💻 Local Nitro 1.554s (-4.8%) 2.006s (-3.3%) 0.452s 15 1.27x
💻 Local Next.js (Turbopack) 1.581s 2.073s 0.492s 15 1.29x
Promise.all with 25 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Express 2.325s (-1.5%) 3.009s (~) 0.683s 10 1.00x
🐘 Postgres Nitro 2.326s (-1.1%) 3.009s (~) 0.683s 10 1.00x
🐘 Postgres Next.js (Turbopack) 2.383s 3.010s 0.628s 10 1.02x
💻 Local Next.js (Turbopack) 2.850s 3.341s 0.491s 9 1.23x
💻 Local Express 2.894s (-2.0%) 3.109s (-10.0% 🟢) 0.215s 10 1.24x
💻 Local Nitro 2.979s (-5.2% 🟢) 3.678s (-5.3% 🟢) 0.699s 9 1.28x
Promise.all with 50 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 3.487s (~) 4.010s (~) 0.523s 8 1.00x
🐘 Postgres Express 3.495s (~) 4.013s (~) 0.517s 8 1.00x
🐘 Postgres Next.js (Turbopack) 3.648s 4.012s 0.364s 8 1.05x
💻 Local Next.js (Turbopack) 7.404s 7.764s 0.360s 4 2.12x
💻 Local Express 8.237s (-1.2%) 9.022s (~) 0.785s 4 2.36x
💻 Local Nitro 8.565s (+2.6%) 9.024s (~) 0.460s 4 2.46x
Promise.race with 10 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Next.js (Turbopack) 1.211s 2.009s 0.799s 15 1.00x
🐘 Postgres Nitro 1.250s (-0.5%) 2.008s (~) 0.758s 15 1.03x
🐘 Postgres Express 1.267s (+0.8%) 2.009s (~) 0.742s 15 1.05x
💻 Local Next.js (Turbopack) 1.531s 2.006s 0.476s 15 1.26x
💻 Local Express 1.533s (-19.1% 🟢) 2.006s (-15.1% 🟢) 0.473s 15 1.27x
💻 Local Nitro 1.554s (-16.7% 🟢) 2.006s (-14.3% 🟢) 0.452s 15 1.28x
Promise.race with 25 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 2.335s (~) 3.010s (~) 0.675s 10 1.00x
🐘 Postgres Express 2.349s (~) 3.008s (~) 0.660s 10 1.01x
🐘 Postgres Next.js (Turbopack) 2.386s 3.012s 0.626s 10 1.02x
💻 Local Next.js (Turbopack) 2.883s 3.453s 0.570s 9 1.23x
💻 Local Nitro 3.074s (~) 3.885s (~) 0.812s 8 1.32x
💻 Local Express 3.099s (-1.1%) 4.012s (+6.6% 🔺) 0.913s 8 1.33x
Promise.race with 50 concurrent steps

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 3.470s (~) 4.009s (~) 0.539s 8 1.00x
🐘 Postgres Express 3.517s (+0.5%) 4.012s (~) 0.495s 8 1.01x
🐘 Postgres Next.js (Turbopack) 3.660s 4.010s 0.350s 8 1.05x
💻 Local Next.js (Turbopack) 8.201s 8.768s 0.566s 4 2.36x
💻 Local Express 8.858s (+0.7%) 9.281s (~) 0.422s 4 2.55x
💻 Local Nitro 9.104s (~) 10.022s (~) 0.919s 3 2.62x
workflow with 10 sequential data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Next.js (Turbopack) 0.768s 1.006s 0.238s 60 1.00x
🐘 Postgres Nitro 0.809s (-1.3%) 1.006s (~) 0.197s 60 1.05x
🐘 Postgres Express 0.827s (-1.4%) 1.023s (~) 0.195s 59 1.08x
💻 Local Next.js (Turbopack) 0.846s 1.005s 0.158s 60 1.10x
💻 Local Express 0.987s (~) 1.158s (+7.7% 🔺) 0.171s 52 1.29x
💻 Local Nitro 0.999s (+1.9%) 1.424s (+30.2% 🔺) 0.424s 43 1.30x
workflow with 25 sequential data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 1.898s (-1.5%) 2.075s (-1.2%) 0.177s 44 1.00x
🐘 Postgres Next.js (Turbopack) 1.906s 2.100s 0.194s 43 1.00x
🐘 Postgres Express 1.962s (-0.7%) 2.316s (+2.6%) 0.354s 39 1.03x
💻 Local Next.js (Turbopack) 2.651s 3.008s 0.356s 30 1.40x
💻 Local Express 3.003s (~) 3.509s (-2.1%) 0.505s 26 1.58x
💻 Local Nitro 3.058s (+0.7%) 3.843s (+2.2%) 0.785s 24 1.61x
workflow with 50 sequential data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 3.877s (-5.5% 🟢) 4.076s (-11.5% 🟢) 0.199s 30 1.00x
🐘 Postgres Next.js (Turbopack) 3.960s 4.183s 0.223s 29 1.02x
🐘 Postgres Express 4.031s (+1.0%) 4.403s (+0.8%) 0.372s 28 1.04x
💻 Local Next.js (Turbopack) 8.563s 9.017s 0.455s 14 2.21x
💻 Local Express 9.151s (-0.6%) 9.787s (-2.3%) 0.636s 13 2.36x
💻 Local Nitro 9.309s (~) 10.019s (~) 0.710s 12 2.40x
workflow with 10 concurrent data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Next.js (Turbopack) 0.253s 1.007s 0.754s 60 1.00x
🐘 Postgres Nitro 0.280s (-1.1%) 1.007s (~) 0.727s 60 1.11x
🐘 Postgres Express 0.295s (+4.3%) 1.007s (~) 0.713s 60 1.16x
💻 Local Next.js (Turbopack) 0.555s 1.004s 0.449s 60 2.19x
💻 Local Express 0.589s (+5.2% 🔺) 1.004s (~) 0.415s 60 2.33x
💻 Local Nitro 0.601s (-0.6%) 1.005s (-1.6%) 0.404s 60 2.38x
workflow with 25 concurrent data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Next.js (Turbopack) 0.484s 1.007s 0.523s 90 1.00x
🐘 Postgres Nitro 0.495s (~) 1.006s (~) 0.512s 90 1.02x
🐘 Postgres Express 0.514s (+0.9%) 1.007s (~) 0.492s 90 1.06x
💻 Local Express 2.480s (-1.3%) 3.008s (~) 0.528s 30 5.13x
💻 Local Nitro 2.481s (-2.2%) 3.009s (~) 0.528s 30 5.13x
💻 Local Next.js (Turbopack) 2.554s 2.977s 0.422s 31 5.28x
workflow with 50 concurrent data payload steps (10KB)

💻 Local Development

World Framework Workflow Time Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Next.js (Turbopack) 0.773s 1.007s 0.233s 120 1.00x
🐘 Postgres Nitro 0.790s (~) 1.008s (~) 0.217s 120 1.02x
🐘 Postgres Express 0.797s (-2.6%) 1.008s (-1.0%) 0.210s 120 1.03x
💻 Local Next.js (Turbopack) 10.660s 11.209s 0.549s 11 13.79x
💻 Local Express 11.040s (-1.3%) 11.573s (-3.1%) 0.533s 11 14.28x
💻 Local Nitro 11.389s (+1.8%) 11.942s (+2.4%) 0.553s 11 14.73x
Stream Benchmarks (includes TTFB metrics)
workflow with stream

💻 Local Development

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
💻 Local 🥇 Next.js (Turbopack) 0.170s 1.003s 0.012s 1.018s 0.848s 10 1.00x
🐘 Postgres Express 0.197s (-4.0%) 0.998s (~) 0.001s (-25.0% 🟢) 1.009s (~) 0.812s 10 1.16x
🐘 Postgres Next.js (Turbopack) 0.197s 1.001s 0.001s 1.010s 0.813s 10 1.16x
💻 Local Express 0.201s (+0.9%) 1.004s (~) 0.012s (-4.1%) 1.018s (~) 0.817s 10 1.18x
🐘 Postgres Nitro 0.204s (~) 0.994s (-0.5%) 0.001s (-6.7% 🟢) 1.011s (~) 0.806s 10 1.20x
💻 Local Nitro 0.214s (~) 1.004s (~) 0.013s (+0.8%) 1.019s (~) 0.805s 10 1.26x
stream pipeline with 5 transform steps (1MB)

💻 Local Development

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 0.601s (-3.8%) 1.005s (~) 0.012s (+199.2% 🔺) 1.030s (+0.8%) 0.430s 59 1.00x
🐘 Postgres Express 0.637s (+1.1%) 1.020s (+1.4%) 0.006s (+60.2% 🔺) 1.041s (+1.8%) 0.404s 58 1.06x
🐘 Postgres Next.js (Turbopack) 0.641s 1.027s 0.004s 1.046s 0.405s 58 1.07x
💻 Local Next.js (Turbopack) 0.652s 1.011s 0.010s 1.023s 0.371s 59 1.09x
💻 Local Express 0.846s (+11.8% 🔺) 1.030s (~) 0.009s (-3.0%) 1.134s (+9.1% 🔺) 0.288s 54 1.41x
💻 Local Nitro 0.854s (+1.8%) 1.012s (~) 0.010s (+8.3% 🔺) 1.117s (~) 0.263s 54 1.42x
10 parallel streams (1MB each)

💻 Local Development

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Next.js (Turbopack) 0.916s 1.075s 0.000s 1.099s 0.182s 55 1.00x
🐘 Postgres Express 0.936s (-2.6%) 1.191s (-6.8% 🟢) 0.000s (-9.8% 🟢) 1.205s (-7.8% 🟢) 0.269s 51 1.02x
🐘 Postgres Nitro 0.944s (-2.6%) 1.146s (-8.2% 🟢) 0.000s (-100.0% 🟢) 1.165s (-7.4% 🟢) 0.221s 52 1.03x
💻 Local Express 1.236s (+0.9%) 2.022s (~) 0.000s (-10.0% 🟢) 2.023s (~) 0.787s 30 1.35x
💻 Local Nitro 1.238s (+1.3%) 2.022s (~) 0.000s (+366.7% 🔺) 2.024s (~) 0.786s 30 1.35x
💻 Local Next.js (Turbopack) 1.254s 2.020s 0.000s 2.023s 0.769s 30 1.37x
fan-out fan-in 10 streams (1MB each)

💻 Local Development

World Framework Workflow Time TTFB Slurp Wall Time Overhead Samples vs Fastest
🐘 Postgres 🥇 Nitro 1.693s (-5.5% 🟢) 2.031s (-5.2% 🟢) 0.000s (-100.0% 🟢) 2.071s (-4.7%) 0.378s 29 1.00x
🐘 Postgres Express 1.734s (-2.1%) 2.064s (-5.2% 🟢) 0.000s (+Infinity% 🔺) 2.112s (-3.9%) 0.378s 29 1.02x
🐘 Postgres Next.js (Turbopack) 1.839s 2.106s 0.000s 2.115s 0.276s 29 1.09x
💻 Local Express 3.429s (-1.1%) 4.032s (~) 0.001s (-33.3% 🟢) 4.035s (~) 0.605s 15 2.03x
💻 Local Nitro 3.645s (+7.6% 🔺) 4.166s (+3.3%) 0.000s (-37.5% 🟢) 4.168s (+3.3%) 0.524s 15 2.15x
💻 Local Next.js (Turbopack) 3.766s 4.316s 0.001s 4.321s 0.556s 14 2.22x

Summary

Fastest Framework by World

Winner determined by most benchmark wins

World 🥇 Fastest Framework Wins
💻 Local Next.js (Turbopack) 16/21
🐘 Postgres Nitro 10/21
Fastest World by Framework

Winner determined by most benchmark wins

Framework 🥇 Fastest World Wins
Express 🐘 Postgres 19/21
Next.js (Turbopack) 🐘 Postgres 17/21
Nitro 🐘 Postgres 19/21
Column Definitions
  • Workflow Time: Runtime reported by workflow (completedAt - createdAt) - primary metric
  • TTFB: Time to First Byte - time from workflow start until first stream byte received (stream benchmarks only)
  • Slurp: Time from first byte to complete stream consumption (stream benchmarks only)
  • Wall Time: Total testbench time (trigger workflow + poll for result)
  • Overhead: Testbench overhead (Wall Time - Workflow Time)
  • Samples: Number of benchmark iterations run
  • vs Fastest: How much slower compared to the fastest configuration for this benchmark

Worlds:

  • 💻 Local: In-memory filesystem world (local development)
  • 🐘 Postgres: PostgreSQL database world (local development)
  • ▲ Vercel: Vercel production/preview deployment
  • 🌐 Turso: Community world (local development)
  • 🌐 MongoDB: Community world (local development)
  • 🌐 Redis: Community world (local development)
  • 🌐 Jazz: Community world (local development)

📋 View full workflow run


Some benchmark jobs failed:

  • Local: success
  • Postgres: success
  • Vercel: failure

Check the workflow run for details.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates CI workflows/actions to make shell commands safer and more predictable by avoiding direct GitHub expression interpolation inside bash command strings, and by standardizing how matrix/output values are passed through environment variables.

Changes:

  • Compact/normalize the generated test matrix JSON before writing it to GITHUB_OUTPUT.
  • Replace inline ${{ ... }} interpolations in bash commands with quoted env vars (APP_NAME, WORKBENCH_APP_PATH, CANARY_SUFFIX) across local E2E jobs.
  • Update the prepare-workbench-path composite action to use an APP_NAME env var for path handling.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
.github/workflows/tests.yml Uses env vars + quoting for safer paths/filenames; compacts matrix JSON before exporting.
.github/actions/prepare-workbench-path/action.yml Uses APP_NAME env var (quoted) to build workbench paths more safely.
.changeset/fix-ci-command-injection.md Adds a changeset file (currently empty/invalid).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@vercel vercel deleted a comment from Copilot AI Apr 21, 2026
- add allowlist regex in prepare-workbench-path to block path traversal
- move matrix/input values to env vars across e2e-vercel-prod,
  benchmarks (local/postgres/vercel), and the reusable community-world
  workflows
- validate app-name/world-id/world-package inputs in the reusable
  community-world workflows
- pipe getCommunityWorldsMatrix script output through jq -c to prevent
  \$GITHUB_OUTPUT injection

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport-stable Cherry-pick this PR to the stable branch when merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants