[PR #314] [MERGED] refactor(ci): extract composite actions and improve workflow hygiene #470

Closed
opened 2026-05-06 13:08:15 +02:00 by BreizhHardware · 0 comments

📋 Pull Request Information

Original PR: https://github.com/cloudflare/vinext/pull/314
Author: @james-elicx
Created: 3/7/2026
Status: Merged
Merged: 3/7/2026
Merged by: @james-elicx

Base: mainHead: opencode/playful-circuit


📝 Commits (3)

  • 8e3e6e2 refactor(ci): extract composite actions and improve workflow hygiene
  • 757244b refactor(ci): revert to inline steps, keep only setup-node-pnpm composite action
  • 56ead1b refactor(ci): use setup-node-pnpm composite action consistently

📊 Changes

8 files changed (+102 additions, -150 deletions)

View changed files

.github/actions/setup-node-pnpm/action.yml (+27 -0)
📝 .github/workflows/benchmarks.yml (+3 -10)
📝 .github/workflows/ci.yml (+36 -68)
📝 .github/workflows/deploy-examples.yml (+11 -15)
📝 .github/workflows/deploy-preview-command.yml (+1 -8)
📝 .github/workflows/ecosystem-run.yml (+22 -35)
📝 .github/workflows/preview-release.yml (+1 -6)
📝 .github/workflows/publish.yml (+1 -8)

📄 Description

Summary

  • setup-node-pnpm composite action replaces the repeated 3-step pnpm/node/install triplet across all eligible workflows — every workflow that does setup and install now uses it consistently
  • Playwright browser cache added to E2E jobs — avoids re-downloading ~150MB of Chromium on every CI run
  • Concurrency group added to deploy-examples.yml — prevents deploy jobs piling up on busy branches
  • CJS → bash in create-next-app job — replaced the inline node {0} + require() script with a portable bash loop
  • CJS → ESM in ecosystem-run.yml — all inline Node heredocs converted from require() to node --input-type=module with import statements

Exceptions (intentionally kept inline)

  • bonk.yml / bigbonk.ymlissue_comment-triggered workflows; GHAS flags local composite actions reachable from these as untrusted-checkout TOCTOU
  • tip.yml notify-on-failure job — only needs plain setup-node, no pnpm or install

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/cloudflare/vinext/pull/314 **Author:** [@james-elicx](https://github.com/james-elicx) **Created:** 3/7/2026 **Status:** ✅ Merged **Merged:** 3/7/2026 **Merged by:** [@james-elicx](https://github.com/james-elicx) **Base:** `main` ← **Head:** `opencode/playful-circuit` --- ### 📝 Commits (3) - [`8e3e6e2`](https://github.com/cloudflare/vinext/commit/8e3e6e2e6be4d07440f1ad2dbf2bd75c3375a3b1) refactor(ci): extract composite actions and improve workflow hygiene - [`757244b`](https://github.com/cloudflare/vinext/commit/757244b570cbe0677a530e101da28a75d206897d) refactor(ci): revert to inline steps, keep only setup-node-pnpm composite action - [`56ead1b`](https://github.com/cloudflare/vinext/commit/56ead1b2ee22b78619a0ec6256383b9fc9a4cb90) refactor(ci): use setup-node-pnpm composite action consistently ### 📊 Changes **8 files changed** (+102 additions, -150 deletions) <details> <summary>View changed files</summary> ➕ `.github/actions/setup-node-pnpm/action.yml` (+27 -0) 📝 `.github/workflows/benchmarks.yml` (+3 -10) 📝 `.github/workflows/ci.yml` (+36 -68) 📝 `.github/workflows/deploy-examples.yml` (+11 -15) 📝 `.github/workflows/deploy-preview-command.yml` (+1 -8) 📝 `.github/workflows/ecosystem-run.yml` (+22 -35) 📝 `.github/workflows/preview-release.yml` (+1 -6) 📝 `.github/workflows/publish.yml` (+1 -8) </details> ### 📄 Description ## Summary - **`setup-node-pnpm` composite action** replaces the repeated 3-step pnpm/node/install triplet across all eligible workflows — every workflow that does setup and install now uses it consistently - **Playwright browser cache** added to E2E jobs — avoids re-downloading ~150MB of Chromium on every CI run - **Concurrency group** added to `deploy-examples.yml` — prevents deploy jobs piling up on busy branches - **CJS → bash** in `create-next-app` job — replaced the inline `node {0}` + `require()` script with a portable bash loop - **CJS → ESM** in `ecosystem-run.yml` — all inline Node heredocs converted from `require()` to `node --input-type=module` with `import` statements ## Exceptions (intentionally kept inline) - `bonk.yml` / `bigbonk.yml` — `issue_comment`-triggered workflows; GHAS flags local composite actions reachable from these as untrusted-checkout TOCTOU - `tip.yml` `notify-on-failure` job — only needs plain `setup-node`, no pnpm or install --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
BreizhHardware 2026-05-06 13:08:15 +02:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/vinext#470
No description provided.