Skip to content

chore(ci): Split monolithic ci.yml into separate workflow files#1408

Merged
yamadashy merged 2 commits intomainfrom
chore/split-ci-workflow
Apr 5, 2026
Merged

chore(ci): Split monolithic ci.yml into separate workflow files#1408
yamadashy merged 2 commits intomainfrom
chore/split-ci-workflow

Conversation

@yamadashy
Copy link
Copy Markdown
Owner

@yamadashy yamadashy commented Apr 5, 2026

Split the monolithic ci.yml (~355 lines, ~40 jobs) into 4 focused workflow files with appropriate path-based filtering:

File Jobs Path filter
ci.yml Core lint (biome, oxlint, ts, secretlint), test (Node/Bun), build-and-run paths-ignore: website/**, browser/**
ci-website.yml Website client lint, server lint, server bundle paths: website/**
ci-browser.yml Browser extension lint, test paths: browser/**
ci-quality.yml actionlint, zizmor, check-typos paths-ignore (broad)

Benefits:

  • Reduces unnecessary job execution when only a subset of the codebase changes
  • Improves workflow readability and maintainability
  • Each workflow has workflow_dispatch for manual triggering
  • Self-referencing path triggers (e.g., .github/workflows/ci-website.yml) ensure workflow file changes are also tested

Checklist

  • Run npm run test
  • Run npm run lint

Open with Devin

@gemini-code-assist
Copy link
Copy Markdown
Contributor

Note

Gemini is unable to generate a review for this pull request due to the file types involved not being currently supported.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Apr 5, 2026

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: cee08174-b2c7-4d46-a6a0-633609e9bf89

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

This PR refactors GitHub Actions CI workflows by extracting job-specific workflows for browser extension, website, and quality checks into separate dedicated workflow files, while removing those jobs from the main ci.yml workflow and updating its path-ignore filters to exclude browser/** and website/** directories.

Changes

Cohort / File(s) Summary
Browser Extension CI
.github/workflows/ci-browser.yml
New workflow file that defines lint-browser and test-browser jobs, triggered on changes to browser/**. Each job checks out code, sets up Node.js, installs dependencies via npm ci, and runs npm run prepare followed by either lint or test commands.
Website CI
.github/workflows/ci-website.yml
New workflow file with three jobs: lint-website-client runs linting in website/client, while lint-website-server and bundle-website-server build a local repomix package, link it, install dependencies in website/server, then run lint or bundle commands. Triggered on changes to website/**.
Quality Checks CI
.github/workflows/ci-quality.yml
New workflow file introducing three specialized quality-check jobs: actionlint for GitHub Actions linting, zizmor for workflow/config security scanning, and typos for spell-checking. Triggered on push/PR to main with exclusions for Markdown and LICENSE files.
Main CI Workflow Refactoring
.github/workflows/ci.yml
Removed 6 jobs that were extracted to separate workflows (lint-website-client, lint-website-server, bundle-website-server, lint-browser, test-browser, and quality-check jobs). Updated paths-ignore filters in push/PR triggers to exclude website/** and browser/** directories.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely summarizes the main change: splitting a monolithic CI workflow into separate focused workflow files.
Description check ✅ Passed The description provides comprehensive context with a detailed table of new workflows, benefits, and completed checklist items, though it exceeds the minimal template structure.
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 chore/split-ci-workflow

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 5, 2026

⚡ Performance Benchmark

Latest commit:c164135 fix(ci): Add missing path triggers for .tool-versions and root sources
Status:✅ Benchmark complete!
Ubuntu:1.52s (±0.02s) → 1.52s (±0.04s) · -0.00s (-0.3%)
macOS:1.83s (±0.44s) → 1.81s (±0.48s) · -0.02s (-1.2%)
Windows:1.86s (±0.03s) → 1.86s (±0.04s) · -0.00s (-0.1%)
Details
  • Packing the repomix repository with node bin/repomix.cjs
  • Warmup: 2 runs (discarded), interleaved execution
  • Measurement: 20 runs / 30 on macOS (median ± IQR)
  • Workflow run
History

9a71560 fix(ci): Add missing path triggers for .tool-versions and root sources

Ubuntu:1.47s (±0.02s) → 1.48s (±0.02s) · +0.01s (+0.4%)
macOS:1.49s (±0.26s) → 1.38s (±0.13s) · -0.11s (-7.4%)
Windows:2.52s (±0.68s) → 2.42s (±0.66s) · -0.10s (-4.1%)

ecabeb3 chore(ci): Split monolithic ci.yml into separate workflow files

Ubuntu:1.42s (±0.01s) → 1.43s (±0.02s) · +0.01s (+0.5%)
macOS:0.87s (±0.07s) → 0.86s (±0.03s) · -0.01s (-1.1%)
Windows:1.92s (±0.05s) → 1.95s (±0.03s) · +0.03s (+1.5%)

@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages bot commented Apr 5, 2026

Deploying repomix with  Cloudflare Pages  Cloudflare Pages

Latest commit: c164135
Status: ✅  Deploy successful!
Preview URL: https://d9ebfdac.repomix.pages.dev
Branch Preview URL: https://chore-split-ci-workflow.repomix.pages.dev

View logs

Copy link
Copy Markdown
Contributor

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

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

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no potential bugs to report.

View in Devin Review to see 2 additional findings.

Open in Devin Review

coderabbitai[bot]

This comment was marked as resolved.

yamadashy and others added 2 commits April 5, 2026 22:33
Split the CI workflow into focused files with appropriate path filters:
- ci.yml: Core lint, test, and build (paths-ignore website/, browser/)
- ci-website.yml: Website client/server lint and bundle (paths: website/**)
- ci-browser.yml: Browser extension lint and test (paths: browser/**)
- ci-quality.yml: actionlint, zizmor, typos (broad paths-ignore)

This reduces unnecessary job execution by ~40 jobs when only a subset
of the codebase changes, and improves workflow readability.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- ci-browser.yml: Add .tool-versions to paths so Node version bumps
  trigger browser lint/test
- ci-website.yml: Add src/**, package.json, package-lock.json, and
  .tool-versions to paths since website-server jobs depend on root
  repomix build

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@yamadashy yamadashy force-pushed the chore/split-ci-workflow branch from 9a71560 to c164135 Compare April 5, 2026 13:33
@codecov
Copy link
Copy Markdown

codecov bot commented Apr 5, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 87.40%. Comparing base (a96b212) to head (c164135).
⚠️ Report is 18 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1408   +/-   ##
=======================================
  Coverage   87.40%   87.40%           
=======================================
  Files         116      116           
  Lines        4392     4392           
  Branches     1018     1018           
=======================================
  Hits         3839     3839           
  Misses        553      553           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@yamadashy yamadashy merged commit 5599736 into main Apr 5, 2026
66 checks passed
@yamadashy yamadashy deleted the chore/split-ci-workflow branch April 5, 2026 13:43
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