Skip to content

ci: speed up e2e workflow with filtered install and build - #3872

Draft
nameless-mc wants to merge 1 commit into
mainfrom
ci/speed-up-e2e-workflow
Draft

ci: speed up e2e workflow with filtered install and build#3872
nameless-mc wants to merge 1 commit into
mainfrom
ci/speed-up-e2e-workflow

Conversation

@nameless-mc

Copy link
Copy Markdown
Contributor

Why

The test e2e workflow installs and builds all 11 workspace packages on every matrix leg (3 OS × 3 Node = 9 jobs), although only @kintone/rest and @kintone/create-plugin have a test:e2e script. It also downloads @stoplight/prism-cli and wait-on via pnpm dlx on every run, outside the lockfile.

What

  • Install only the workspace root and the two e2e packages with --filter (12 → 3 projects)
  • Build only @kintone/create-plugin, whose e2e tests run bin/cli.js; @kintone/rest's e2e tests import the sources directly, so they don't need a build
  • Move @stoplight/prism-cli and wait-on from pnpm dlx to devDependencies of @kintone/rest, so their versions (including transitive dependencies) are pinned via the lockfile, and start the mock server after pnpm install

Note: this PR only reduces the install/build portion of each leg. The dominant cost of the workflow (the create-plugin e2e tests, which run real npm install, and the size of the matrix itself) is out of scope and will be addressed separately.

How to test

Reproduced the workflow steps locally in the same order:

  1. pnpm install --frozen-lockfile --filter @kintone/js-sdk --filter @kintone/rest --filter @kintone/create-plugin → "Scope: 3 of 12 workspace projects"
  2. pnpm --filter @kintone/create-plugin run build
  3. Started the mock server with the same commands as the workflow (prism from devDependencies) and confirmed wait-on succeeds
  4. pnpm --filter @kintone/rest run test:e2e — 4 passed
  5. pnpm --filter @kintone/create-plugin run test:e2e — 14 passed

The test e2e workflow on this PR also verifies the change end-to-end.

Checklist

  • Read CONTRIBUTING.md
  • Updated documentation if it is required.
  • Added tests if it is required.
  • Passed pnpm lint and pnpm test on the root directory.

Only @kintone/rest and @kintone/create-plugin have a test:e2e script,
but the e2e workflow installed and built all 11 workspace packages on
every matrix leg.

- Install only the workspace root and the two e2e packages
  (12 -> 3 projects)
- Build only @kintone/create-plugin, whose e2e tests run bin/cli.js;
  @kintone/rest's e2e tests import the sources directly
- Replace pnpm dlx (downloads on every run) with @stoplight/prism-cli
  and wait-on as devDependencies of @kintone/rest, managed via the
  lockfile, and start the mock server after pnpm install
@nameless-mc nameless-mc self-assigned this Jul 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant