Skip to content

ci: migrate ci.yml to reusable-node-ci#159

Merged
klodr merged 1 commit into
mainfrom
feat/migrate-ci-to-reusable
May 11, 2026
Merged

ci: migrate ci.yml to reusable-node-ci#159
klodr merged 1 commit into
mainfrom
feat/migrate-ci-to-reusable

Conversation

@klodr

@klodr klodr commented May 11, 2026

Copy link
Copy Markdown
Owner

Pilot pattern from klodr/eslint-plugin-security-mcp PR #25. Replaces the inline lint+test job with a thin caller of klodr/.github/.github/workflows/reusable-node-ci.yml.

⚠️ Ruleset toggle required :

  1. Disable enforcement on main ruleset (Settings → Rules → Rulesets → main → Enforcement: Disabled)
  2. Auto-merge fires once CI is green
  3. Re-enable enforcement with the new check names: ci / Lint & Format, ci / Build & Test (Node 22), ci / Build & Test (Node 24)

Summary by CodeRabbit

  • Chores
    • Optimized CI/CD pipeline by consolidating build and testing processes for improved efficiency.
    • Enhanced continuous integration workflow with streamlined job execution and improved security permissions.

Review Change Stack

Signed-off-by: Claude Perrin <klodr@users.noreply.github.com>
@klodr klodr enabled auto-merge (squash) May 11, 2026 18:10
@coderabbitai

coderabbitai Bot commented May 11, 2026

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 166d592b-bf0b-43d2-9e28-89a3332d946c

📥 Commits

Reviewing files that changed from the base of the PR and between 0d97f72 and 0ae5c33.

📒 Files selected for processing (1)
  • .github/workflows/ci.yml

Walkthrough

The CI workflow in .github/workflows/ci.yml is consolidated by replacing separate lint and matrix build jobs with a single ci job that invokes a reusable Node CI workflow. The reusable workflow is called with codecov-slug and coverage-strategy inputs, eliminating the inlined build, test, coverage, and Codecov conditional steps from this file.

Changes

CI Workflow Consolidation

Layer / File(s) Summary
Reusable Workflow Job Definition
.github/workflows/ci.yml
The separate jobs.lint and jobs.build are replaced with jobs.ci that invokes reusable-node-ci.yml@31517bee59b358945f7af0fdb3960085e0f3ec78. The new job defines permissions with contents: read and id-token: write, and passes codecov-slug: 'klodr/faxdrop-mcp' and coverage-strategy: 'always' to the reusable workflow.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Possibly related PRs

  • klodr/faxdrop-mcp#133: Both PRs refactor .github/workflows/ci.yml to replace inline CI steps with shared klodr/.github components (retrieved PR uses composite actions; main PR uses a pinned reusable workflow).
  • klodr/faxdrop-mcp#129: Both PRs modify the repository's CI workflow with overlapping CI/Codecov behavior changes (the main PR replaces local jobs with a reusable workflow that governs Codecov/coverage inputs).

Suggested labels

Review effort 2/5

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title follows Conventional Commits format with 'ci' type and imperative subject, is 38 characters (well under 72 limit), and accurately describes the main change of migrating ci.yml to use a reusable workflow.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ 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 feat/migrate-ci-to-reusable

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

@codecov

codecov Bot commented May 11, 2026

Copy link
Copy Markdown

Bundle Report

Bundle size has no change ✅

@github-actions

Copy link
Copy Markdown
Contributor

PR Reviewer Guide 🔍

Here are some key observations to aid the review process:

🎫 Ticket compliance analysis ❌

25 - Not compliant

Non-compliant requirements:

  • Drop Node 18 and set minimum runtime to Node 20.11
  • Bump major dependencies (zod, typescript, eslint, @types/node, @modelcontextprotocol/sdk, tsup)
  • Migrate test runner from jest to vitest
  • Add codecov.yml for CI hardening
  • Bump actions/upload-artifact to v7.0.1
  • Turn off CodeRabbit docstring-coverage check
⏱️ Estimated effort to review: 1 🔵⚪⚪⚪⚪
🧪 No relevant tests
🔒 No security concerns identified
⚡ No major issues detected

@codecov

codecov Bot commented May 11, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (0d97f72) to head (0ae5c33).
⚠️ Report is 1 commits behind head on main.
✅ All tests successful. No failed tests found.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff            @@
##              main      #159   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files           15        15           
  Lines          505       505           
  Branches       130       130           
=========================================
  Hits           505       505           

Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 0d97f72...0ae5c33. Read the comment docs.

@github-actions

Copy link
Copy Markdown
Contributor

PR Reviewer Guide 🔍

Here are some key observations to aid the review process:

🎫 Ticket compliance analysis 🔶

25 - Partially compliant

Compliant requirements:

(none)

Non-compliant requirements:

  • Drop Node 18, minimum Node 20.11
  • Upgrade major deps: zod 3.25→4.3.6, typescript 5.7→6.0.3, eslint 9.39→10.2.1, @types/node 22→20.19.0, @modelcontextprotocol/sdk 1.25→1.29.0, tsup 8.3→8.5.1
  • Migrate test runner from jest to vitest (@vitest/coverage-v8)
  • CI hardening: add codecov.yml with thresholds, update actions/upload-artifact
  • CodeRabbit docstring-coverage check turned off
  • Adjust branch protection rules after merge

Requires further human verification:

(none)

⏱️ Estimated effort to review: 1 🔵⚪⚪⚪⚪
🧪 No relevant tests
🔒 No security concerns identified
⚡ No major issues detected

@klodr klodr merged commit 4201f1b into main May 11, 2026
22 checks passed
@klodr klodr deleted the feat/migrate-ci-to-reusable branch May 11, 2026 18:12
klodr pushed a commit that referenced this pull request May 11, 2026
🤖 I have created a release *beep* *boop*
---


## [0.8.7](v0.8.6...v0.8.7)
(2026-05-11)


### Fixed

* **ci:** align auto-merge filter on klodr-release-please[bot]
([#157](#157))
([0f20737](0f20737))
* **ci:** drop paths filter on actions-pinned
([#156](#156))
([37511b3](37511b3))
* **ci:** repin reusable auto-merge to a reachable SHA
([#158](#158))
([0d97f72](0d97f72))


### Changed

* **lint-staged:** add prettier --write to all globs
([#160](#160))
([961bec0](961bec0))
* migrate ci.yml to reusable-node-ci
([#159](#159))
([4201f1b](4201f1b))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Bug Fixes**
  * Resolved CI auto-merge filter and path filtering issues
  * Fixed reusable auto-merge configuration stability

* **Chores**
  * Version bumped to 0.8.7
  * Enhanced code formatting automation
  * Migrated CI workflow to improved configuration

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/klodr/faxdrop-mcp/pull/161)

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: klodr-release-please[bot] <282976459+klodr-release-please[bot]@users.noreply.github.com>
klodr added a commit that referenced this pull request May 17, 2026
Signed-off-by: Claude Perrin <klodr@users.noreply.github.com>
klodr pushed a commit that referenced this pull request May 17, 2026
🤖 I have created a release *beep* *boop*
---


## [0.8.7](v0.8.6...v0.8.7)
(2026-05-11)


### Fixed

* **ci:** align auto-merge filter on klodr-release-please[bot]
([#157](#157))
([84b9a87](84b9a87))
* **ci:** drop paths filter on actions-pinned
([#156](#156))
([b5fb759](b5fb759))
* **ci:** repin reusable auto-merge to a reachable SHA
([#158](#158))
([354e3ec](354e3ec))


### Changed

* **lint-staged:** add prettier --write to all globs
([#160](#160))
([ffde1e0](ffde1e0))
* migrate ci.yml to reusable-node-ci
([#159](#159))
([5c17b65](5c17b65))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Bug Fixes**
  * Resolved CI auto-merge filter and path filtering issues
  * Fixed reusable auto-merge configuration stability

* **Chores**
  * Version bumped to 0.8.7
  * Enhanced code formatting automation
  * Migrated CI workflow to improved configuration

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/klodr/faxdrop-mcp/pull/161)

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: klodr-release-please[bot] <282976459+klodr-release-please[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant