Skip to content

ci: optimize CI performance with concurrency, path filters, and reduced matrix#88

Merged
blockiosaurus merged 2 commits intomainfrom
claude/optimize-ci-performance-YLMlp
Mar 19, 2026
Merged

ci: optimize CI performance with concurrency, path filters, and reduced matrix#88
blockiosaurus merged 2 commits intomainfrom
claude/optimize-ci-performance-YLMlp

Conversation

@blockiosaurus
Copy link
Contributor

  • Add concurrency groups to cancel in-progress runs on new pushes
  • Add path-ignore filters to skip CI for doc-only changes
  • Reduce Node matrix from 3 to 2 versions (lts/* + 24)
  • Use pnpm install --frozen-lockfile for faster, deterministic installs
  • Skip prebuild clean step in CI (fresh checkout doesn't need it)

https://claude.ai/code/session_012Wc7SK396aDRfy8s5VPj4q

…ed matrix

- Add concurrency groups to cancel in-progress runs on new pushes
- Add path-ignore filters to skip CI for doc-only changes
- Reduce Node matrix from 3 to 2 versions (lts/* + 24)
- Use pnpm install --frozen-lockfile for faster, deterministic installs
- Skip prebuild clean step in CI (fresh checkout doesn't need it)

https://claude.ai/code/session_012Wc7SK396aDRfy8s5VPj4q
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 19, 2026

Summary by CodeRabbit

  • Chores
    • Enforced lockfile consistency for dependency installs in CI and release processes.
    • Adjusted build automation to skip a cleanup step when running in CI for faster runs.
    • Added concurrency controls to reduce overlapping workflow runs and improve reliability.
  • Tests
    • Test runner configured to run tests in parallel and workflow skip rules added for documentation-only changes.

Walkthrough

CI workflows and local build/test configs updated: pnpm installs now use --frozen-lockfile, test workflow adds concurrency and path-ignore, Node matrix narrowed, build step sets CI=true, package prebuild skips clean on CI, and Mocha enabled parallel test runs.

Changes

Cohort / File(s) Summary
Release & Test Workflows
.github/workflows/onRelease.yml, .github/workflows/test.yml
Both workflows switch pnpm installpnpm install --frozen-lockfile. test.yml additionally adds concurrency, paths-ignore for docs/metadata, and narrows the Node.js matrix (lts/*, 24).
Build scripts
package.json
prebuild script now runs pnpm run clean only when CI is not set (conditional skip in CI environments).
Test runner config
.mocharc.json
Enabled "parallel": true to run Mocha tests in parallel.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested reviewers

  • nhanphan
  • tonyboylehub
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main changes: CI optimization through concurrency, path filters, and reduced test matrix.
Description check ✅ Passed The description clearly relates to the changeset, listing concrete optimizations including concurrency, path filters, frozen lockfile, and CI environment handling.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/optimize-ci-performance-YLMlp
📝 Coding Plan
  • Generate coding plan for human review comments

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@package.json`:
- Line 110: The prebuild script uses POSIX shell syntax ([ -z "$CI" ]) which
fails on Windows; replace it with a cross-platform Node-based check: update the
"prebuild" script in package.json to run a short Node one-liner that checks
process.env.CI and conditionally runs "pnpm run clean" (for example using node
-e and child_process.execSync), so the logic lives in Node and works on Windows,
macOS, and Linux while keeping the same behavior.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 8dd65468-c45f-4312-9f56-79281cf839d7

📥 Commits

Reviewing files that changed from the base of the PR and between c30370c and 6a9ca3f.

📒 Files selected for processing (3)
  • .github/workflows/onRelease.yml
  • .github/workflows/test.yml
  • package.json

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.mocharc.json:
- Line 11: The test suite is running in parallel ("parallel": true) while many
test files share a single hardcoded wallet address in their before() hooks,
causing race conditions; either disable parallel execution by removing or
setting "parallel" to false in .mocharc.json (or run with --parallel=false) OR
update the test setup in the affected before() hooks (files under
test/commands/** like toolbox/*.test.ts, tm/*.test.ts, cm/*.test.ts,
genesis/*.test.ts, bg/*.test.ts, core/*.test.ts) to generate unique wallets per
suite (e.g., use Keypair.generate() or derive per-suite wallets) and replace
occurrences of TESTfCYwTPxME2cAnPcKvvF5xdPah3PY7naYQEP2kkx with those dynamic
wallets.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: b15e152f-aa0b-4224-9e8d-6d9ceee2dc2a

📥 Commits

Reviewing files that changed from the base of the PR and between 6a9ca3f and 17e5737.

📒 Files selected for processing (1)
  • .mocharc.json

@blockiosaurus blockiosaurus merged commit 667e3a9 into main Mar 19, 2026
3 checks passed
@blockiosaurus blockiosaurus deleted the claude/optimize-ci-performance-YLMlp branch March 19, 2026 17:33
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.

3 participants