Skip to content

feat(ci): onboard vitest-runner onto CLDMV v4 release flow - #1

Merged
Shinrai merged 6 commits into
nextfrom
chore/scaffold-cldmv-v4-workflows
Jul 29, 2026
Merged

feat(ci): onboard vitest-runner onto CLDMV v4 release flow#1
Shinrai merged 6 commits into
nextfrom
chore/scaffold-cldmv-v4-workflows

Conversation

@cldmv-bot

@cldmv-bot cldmv-bot Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

🚀 What's Changed

💥 Breaking Changes

No breaking changes

✨ Features

  • feat(ci): onboard vitest-runner onto CLDMV v4 release flow (93d694b)
  • feat(runner): add blobsDir and mergeReports options (5d59c69)

🐛 Bug Fixes

No bug fixes

📦 Dependencies

No dependency updates

🔧 Other Changes

  • chore: raise engines.node to >=20.19.0 and test Node 20/22/24 in CI (2a223b5)
  • chore(tooling): add Prettier, enforce lint+format in CI, clear audit (5e89469)
  • chore(lint): set up ESLint flat config matching @cldmv/slothlet (603c625)
👥 Contributors

Shinrai added 6 commits June 18, 2026 06:54
Thread two new coverage-mode options through run():

- blobsDir: caller-chosen directory for per-file coverage blobs
  (default <cwd>/.vitest-coverage-blobs, resolved against cwd).
- mergeReports (default true): when false, stop after producing the
  per-file blobs — skip the internal vitest --mergeReports call and the
  coverage summary, and leave blobsDir intact so an external step can
  merge these blobs with a separately-produced blob set. blobsDir is
  still cleared at the start of every coverage run.

Enables merging a second (e.g. browser-mode) coverage blob set into the
node coverage via one external --mergeReports step. Default behavior is
unchanged. CLI flags --blobs-dir <path> and --no-merge-reports map to
the new options. Docs, types, and tests updated.
The `lint` script referenced ESLint but the repo had no dependency and no
config, so `npm run lint` only fell through to a stale global ESLint 6 and
errored. Wire it up the same way as @cldmv/slothlet:

- Add eslint@10 + @eslint/{js,json,markdown,css} + globals as devDeps.
- Add .configs/eslint.config.mjs (flat config): js/recommended with the
  _ / ___ unused-binding escape hatch, plus the JSON/Markdown/CSS language
  plugins; ignores build artifacts and the untracked reference/ copy.
- Point the script at the config: eslint --config .configs/eslint.config.mjs .

Fix the issues the new lint surfaced:
- runner.mjs: drop unused formatDuration/colourPct imports (still re-exported).
- discover.mjs: attach { cause } to the test-list read error.
- progress.mjs: rename unused onComplete param to ___failedRun.
- cli/help.mjs: escape the regex shown in --file-pattern help.
- README.md: add a language to two fenced code blocks.
- tests: drop unused vitest imports (beforeAll/afterAll, vi).
Round out the lint setup to match @cldmv/slothlet's tooling and gate it in CI.

Prettier:
- Add prettier@latest + .configs/.prettierrc (CLDMV style: tabs, width 140,
  no trailing commas; *.md proseWrap: preserve so prose isn't re-wrapped).
- Add .prettierignore (build artifacts, the untracked reference/ copy, and
  *.yml/*.yaml — workflows are deliberately 4-space and YAML disallows tabs).
- Add format / format:check scripts. Only README.md needed reformatting
  (table alignment, emphasis style, code-block quotes/tabs); the rest of the
  tree already conformed.

CI:
- Run npm run lint and npm run format:check before the existing type check
  and tests.

Audit / dependency hygiene:
- Bump vitest + @vitest/coverage-v8 to ^4.1.9 (in-range): clears all 6
  advisories, which all traced to vitest -> vite (vite, postcss, picomatch,
  esbuild). npm audit now reports 0 vulnerabilities.
- Drop @eslint/css and its config block — this repo has no CSS files.
The dev toolchain (ESLint 10 + @eslint/* requiring ^20.19.0 || ^22.13.0 || >=24,
vitest 4 requiring >=20.0.0) can't run on the previously-declared Node 18 floor.
Raise engines.node to >=20.19.0 to match the actual floor and the CLDMV default,
and widen the CI matrix from [20] to [20, 22, 24] so the supported range is
actually exercised rather than only the latest 20.x.
Bump for the blobsDir + mergeReports coverage options added this cycle
(minor, backward-compatible). Tooling/CI changes ride along but don't
drive the version.
Replace the standalone ci.yml with thin callers of the CLDMV/.github @v4
reusable workflows and install the full v4 release-flow + core-cicd +
security entry callers.

Workflows added/replaced (.github/workflows/):
  ci.yml (replaces standalone), feature-pr.yml, hotfix-redirector.yml,
  next-release.yml, next-reset.yml, hotfixes-release.yml,
  pr-title-normalizer.yml, publish.yml, codeql.yml, scorecard.yml,
  master-commit-audit.yml, update-major-version-tags.yml, v4-bootstrap.yml

Per-repo customizations:
  package_name=@cldmv/vitest-runner; type_check_command=npm run types:check;
  max_node_major=24 (keeps Node 24 LTS in the matrix, matching old CI).

package.json: add build:ci = lint && format:check && types:build, so the
lint + format gates the old standalone CI ran are preserved (workflow-ci@v4
does not run lint/format itself) and publish/CI regenerate types from source.
@cldmv-bot cldmv-bot Bot added ! chore → next v4 flow: chore contributor PR targeting the next integration branch type: feature Implements new functionality — a PR or issue that adds a feature labels Jul 29, 2026
@github-advanced-security

Copy link
Copy Markdown

You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool.

What Enabling Code Scanning Means:

  • The 'Security' tab will display more code scanning analysis results (e.g., for the default branch).
  • Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results.
  • You will be able to see the analysis results for the pull request's branch on this overview once the scans have completed and the checks have passed.

For more information about GitHub Code Scanning, check out the documentation.

@Shinrai
Shinrai merged commit b545f79 into next Jul 29, 2026
22 checks passed
Shinrai added a commit that referenced this pull request Jul 30, 2026
## 🚀 What's Changed

### 💥 Breaking Changes
_No breaking changes_

### ✨ Features
- #1
  - feat(ci): onboard vitest-runner onto CLDMV v4 release flow (93d694b)

### 🐛 Bug Fixes
_No bug fixes_

### 📦 Dependencies
_No dependency updates_

### 🔧 Other Changes
- ci: add no-op build script so the coverage-badge leg passes (e703701)



<details>
<summary>👥 Contributors</summary>

- @Shinrai

</details>

---

<!-- coverage-start -->


![coverage](https://img.shields.io/badge/coverage-100.0%25-brightgreen?style=for-the-badge&logo=vitest&logoColor=white)

| Metric | Coverage |
|--------|----------|
| Statements | 100.0% |
| Branches   | 100.0% |
| Functions  | 100.0% |
| Lines      | 100.0% |

*Avg: **100.0%** · `c2b409d` · Node lts/**

<!-- coverage-end -->

---------

Co-authored-by: Shinrai <Shinrai@users.noreply.github.com>
Co-authored-by: Nathaniel H <7722267+Shinrai@users.noreply.github.com>
Co-authored-by: cldmv-bot[bot] <230771808+cldmv-bot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

! chore → next v4 flow: chore contributor PR targeting the next integration branch type: feature Implements new functionality — a PR or issue that adds a feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants