Skip to content

feat(node-ci): parallelize lint/test/build as independent jobs - #39

Merged
JSisques merged 1 commit into
mainfrom
claude/node-ci-parallel
Jul 17, 2026
Merged

feat(node-ci): parallelize lint/test/build as independent jobs#39
JSisques merged 1 commit into
mainfrom
claude/node-ci-parallel

Conversation

@JSisques

Copy link
Copy Markdown
Contributor

Summary

  • Add node-ci.yml: lint, test, build, and an optional extra_check run as four independent jobs with no needs: between them — each only needs install, so they execute concurrently instead of queued behind one another.
  • Remove api-build.yml and web-build.yml — both were a single sequential job (lint → test → build) and, on inspection, not actually used by any consumer: gardenia-api/gardenia-web have their own hand-rolled ci.yml, not a call to these.
  • New env_vars input: extra environment variables applied to every job as newline-separated KEY=VALUE pairs, for non-secret values a test suite needs (e.g. a mocked login), without hardcoding repo-specific names into the shared workflow.
  • README: replaces the "Web Build"/"API Build" sections and every example referencing them with a single "Node CI" section and updated examples.

Deliberately out of scope: DB-backed e2e/integration jobs (Postgres services, migrations). Too repo-specific (engine/version, env var names, extra steps) to generalize without turning this into a pile of pass-through inputs — those stay as plain jobs in each consumer's own ci.yml, just no longer gated behind needs: <the old build job> when they don't actually consume its output.

Known gap, not fixed here: docs/index.html (a separate static GH Pages doc) still references web-build.yml/api-build.yml and was already stale before this PR (missing release-train, docker-release, codeql, pr-labeler entirely). Left untouched — happy to do a follow-up pass if that page is actually in use.

Consumed by gardenia-api, gardenia-web, nestjs-kit, nestjs-template, and cookidoo-mcp (companion PRs rewiring their ci.yml).

Test plan

  • YAML validated locally (yaml.safe_load)
  • Merge this first, then confirm a consumer's next PR actually runs lint/test/build/extra_check in parallel

Generated by Claude Code

Adds node-ci.yml: lint, test, build, and an optional extra_check run
as four separate jobs with no needs: between them (each only needs
install), so they execute concurrently instead of queued behind one
another. Replaces api-build.yml and web-build.yml, which were both
single sequential jobs and unused by any actual consumer.

env_vars input covers non-secret values a test suite needs (e.g. a
mocked login) without hardcoding repo-specific names into the shared
workflow. DB-backed e2e/integration jobs are intentionally left out —
too repo-specific (engine/version, env vars, seed steps) to generalize
without turning this into a pile of pass-through inputs; consumers
keep those as plain jobs alongside the ci: call, with no needs: unless
they truly consume its build output.
@JSisques
JSisques merged commit 67b2072 into main Jul 17, 2026
2 checks passed
@JSisques
JSisques deleted the claude/node-ci-parallel branch July 17, 2026 11:53
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.

2 participants