Skip to content

ci: replace the per-package lint and test workflows with one workflow - #110

Merged
botandbang merged 3 commits into
mainfrom
bnb/ci-workflow
Oct 23, 2026
Merged

botandbang merged 3 commits into
mainfrom
bnb/ci-workflow

Conversation

@botandbang

Copy link
Copy Markdown
Contributor

Stacked on #109.

Added

  • ci.yml with four jobs:
    • changes uses dorny/paths-filter to pick the packages to test: each package's own directory, the workspace packages it tests against, and shared root files (package.json, .c8rc.json, .npmrc, ci.yml). A manual run tests every package with a coverage script.
    • lint runs the root npm run lint and the repository.url check from lint.yml. The root oxlint and oxfmt configs already cover every package.
    • test runs npm run coverage for each picked package on Node current, lts/* and lts/-1.
    • ci-ok always runs and fails if any job failed or was cancelled. It's meant to be the one required check, since path-filtered jobs that skip never report.
  • PR runs cancel when a new commit is pushed. Each push to main gets its own run.
  • pr-title.yml checks PR titles against conventional commits with amannn/action-semantic-pull-request, since the squash commit is what uppt reads to pick the version. It skips uppt's release/v* PRs, which are titled with the bare version.

Changed

  • static's tests also run when core changes, since static tests against workspace @nodevu/core. Tests now run on pushes to main too.

Removed

  • lint.yml, the ten lint-.yml files and the nine tests-.yml files. On #107 they produced 27 checks, all named tests.

Checked locally: actionlint, zizmor, npm run lint, and the install and coverage commands for all nine packages.

Pin checkout, setup-node and create-pull-request to release SHAs, set
persist-credentials: false on every checkout, and give every workflow
top-level permissions. Add zizmor with adhoc-packages off, since
.npmrc sets package-lock=false. Remove the four NPM_TOKEN publish
workflows; release.yml publishes over trusted publishing.
ci.yml picks packages with paths-filter (own directory, the workspace
packages it tests against, shared root files), runs one root lint, a
coverage matrix per package and Node version, and an always-reporting
ci-ok job to require on main. A manual run tests every package.

pr-title.yml checks PR titles against conventional commits, skipping
uppt's release PRs.
Base automatically changed from bnb/workflow-hardening to main October 23, 2026 22:37
# Conflicts:
#	.github/workflows/lint-aliases.yml
#	.github/workflows/lint-core.yml
#	.github/workflows/lint-fetchindex.yml
#	.github/workflows/lint-newest.yml
#	.github/workflows/lint-oldest.yml
#	.github/workflows/lint-opt.yml
#	.github/workflows/lint-parsefiles.yml
#	.github/workflows/lint-ranges.yml
#	.github/workflows/lint-static.yml
#	.github/workflows/lint-translate.yml
#	.github/workflows/lint.yml
#	.github/workflows/tests-core.yml
#	.github/workflows/tests-fetchindex.yml
#	.github/workflows/tests-newest.yml
#	.github/workflows/tests-oldest.yml
#	.github/workflows/tests-opt.yml
#	.github/workflows/tests-parsefiles.yml
#	.github/workflows/tests-ranges.yml
#	.github/workflows/tests-static.yml
#	.github/workflows/tests-translate.yml
@botandbang
botandbang merged commit 599b5f4 into main Oct 23, 2026
37 checks passed
@botandbang
botandbang deleted the bnb/ci-workflow branch October 23, 2026 23:16
@nodevu-ci nodevu-ci Bot mentioned this pull request Oct 23, 2026
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