ci: run lint, tests, and production build on PRs and main - #35
Merged
Conversation
This was referenced Aug 7, 2026
Closes #4. Label sync was the only workflow, so renderer and Electron regressions could land with no automated signal. - Node 22 (Vite 7 needs ^20.19.0 || >=22.12.0), npm cache keyed on avatar/package-lock.json. - Runs `npm test` as well as lint and build: the 26 Electron unit tests existed but nothing ever ran them. - Skips the Electron binary download — the tested modules deliberately avoid require('electron'), so ~100 MB is dead weight here. - No dist:win: Windows-specific and slow, deferred as the issue suggests. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
v4 declares the node20 runtime, which GitHub now force-runs on Node 24 and warns about on every run. v5 declares node24 natively. No input changes: node-version, cache, and cache-dependency-path are unchanged between v4 and v5. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…PAHLS#34, ARPAHLS#35) Record Unreleased notes for ESLint coverage and GitHub Actions CI, add the README CI badge, mark roadmap CI done, document the workflow in project layout, and expand CONTRIBUTING for changelog style, CI gates, and human/AI ripple-effect guidance.
rosspeili
force-pushed
the
ci/lint-and-build
branch
from
August 7, 2026 10:55
370a3e7 to
149f73e
Compare
Contributor
|
Thanks @AUDOSt0ck1ng, the CI workflow looks solid. Pushed a small follow-up on this branch (
For future PRs, please keep those ripples in mind (changelog, docs, roadmap, README badges when relevant) — CONTRIBUTING now spells that out more explicitly. Optional: close #36 as superseded by the badge in this PR. Appreciate the careful callouts on Node 22 and including |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refs #4.
What
Adds
.github/workflows/ci.yml: onpull_requestandpushtomain, runnpm ci→npm run lint→npm test→npm run buildinavatar/onubuntu-latest.actions/setup-nodewithcache-dependency-path: avatar/package-lock.json.concurrency+cancel-in-progressso superseded pushes on the same ref stop instead of queueing.ELECTRON_SKIP_BINARY_DOWNLOAD: 1— nothing here launches Electron, and the tested modules deliberately avoidrequire('electron'), so the ~100 MB binary is dead weight. This is what keepsnpm ciat ~10s.permissions: contents: readonly.dist:win, as the issue asks.Total runtime is ~27s: checkout 5s, setup-node 2s, install 10s, lint 1s, test 0.3s, build 5s.
Deviations from the issue, flagged for your call
Node 22 instead of Node 20.
avatar/package.jsonis on Vite 7, which requires^20.19.0 || >=22.12.0.node-version: 20would resolve to the latest 20.x and technically satisfy that, but 22 is the current LTS and leaves more headroom. Happy to drop to 20 if you would rather match the issue exactly — it is a one-line change.avatar/instead ofavatar-demo/. The directory was renamed in 5531413, after the issue was filed.Also runs
npm test. The issue asks for lint + build only. The 26 existingelectron/*.test.cjssuites run in 0.26s, so including them is effectively free and catches VRoid Hub OAuth/client regressions. Easy to drop if you want the workflow to match the issue scope exactly.No README badge. The issue lists it as an optional follow-up; left for a separate PR once this is stable.
Depends on #34
mainis currently red on lint, so this workflow fails on its first run until #34 lands. Please merge #34 first — after that this PR reduces to the singleci.ymlcommit.Verification
Both commits ran green on the fork: run 31142107649 — lint, 26/26 tests, and build all pass, no annotations.
The second commit bumps
actions/checkoutandactions/setup-nodeto v5. v4 declares thenode20runtime, which GitHub now force-runs on Node 24 and emits a deprecation warning for on every run; v5 declaresnode24natively. No input changes —node-version,cache, andcache-dependency-pathare identical between v4 and v5.🤖 Generated with Claude Code