Skip to content

feat(release): support workspace releases and package validation - #563

Merged
neilime merged 1 commit into
mainfrom
feat/release-workspaces
Nov 6, 2026
Merged

neilime merged 1 commit into
mainfrom
feat/release-workspaces

Conversation

@neilime

@neilime neilime commented Nov 3, 2026 •

Copy link
Copy Markdown
Member

Support public npm and pnpm workspaces, including fixed and independent Lerna releases. Prepare committed versions, validate distributable packages, and publish the exact validated artifacts through separate workflows.

Changes

  • Discover public packages automatically and configure CI packaging through one string input: "false", "true", or JSON with directories, tests, and test-project.
  • Update manifests and lockfiles before validation, then atomically push the signed version commit and tags. Support manual force, no-change detection, tag recovery, and partial release configuration overrides.
  • Check package entry points and optional isolated consumer projects, and collect validated artifact IDs across workspaces and partial reruns.
  • Prepare release notes and optional provider-neutral summaries before publishing; verify artifact identity and preserve published bytes and asset digests on retries. Release does not rebuild or rerun tests.
  • Reuse the common quality actions and shared release verifier. Keep standalone action dependencies, tests, generated references, and the consolidated ADR aligned.

Breaking changes

continuous-integration.yml replaces the separate package inputs with the string package configuration. Standalone Codecov uploads must use ci-github-common/actions/quality/codecov; the Node.js wrapper is removed.

Validation

Package configuration checks pass against the workflow scripts. Local lint/format checks and all consumer input/secret contract checks pass. The action and workflow integration suites are reported in the CI checks.

Before merging

The shared release verifier is pinned to the merged implementation from ci-github-publish #495. Replace that pin with a stable release before merging. This PR targets stable public packages on npmjs.org; prereleases and custom registries remain outside its scope.

@github-actions github-actions Bot added the type: feature Introduces a new feature label Nov 3, 2026
@github-actions

github-actions Bot commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

Super-linter summary

Language Validation result
BIOME_FORMAT Pass ✅
BIOME_LINT Pass ✅
CHECKOV Pass ✅
GITHUB_ACTIONS Pass ✅
GITHUB_ACTIONS_ZIZMOR Pass ✅
GITLEAKS Pass ✅
GIT_COMMITLINT Pass ✅
GIT_MERGE_CONFLICT_MARKERS Pass ✅
JSCPD Pass ✅
MARKDOWN Pass ✅
MARKDOWN_PRETTIER Pass ✅
NATURAL_LANGUAGE Pass ✅
PRE_COMMIT Pass ✅
SPELL_CODESPELL Pass ✅
TRIVY Pass ✅
YAML Pass ✅
YAML_PRETTIER Pass ✅

All files and directories linted successfully

For more information, see the GitHub Actions workflow run

Powered by Super-linter
Super-linter revision: 2da136927bd4a73596db63044b504547c62cb854
Super-linter version: 9.0.0

@github-actions

github-actions Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Report

Coverage Results

Coverage

Metric Covered Total Percentage
Lines 2 2 100.00%
Functions 1 1 100.00%

Overall: 100.00% 🟢
🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩

@codecov

codecov Bot commented Nov 3, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (31cd29b) to head (edb5946).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff            @@
##              main      #563   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files            1         1           
  Lines            3         3           
=========================================
  Hits             3         3           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@neilime
neilime force-pushed the feat/release-orchestration branch 2 times, most recently from 74481c1 to 438fb1f Compare November 4, 2026 10:40
@neilime
neilime force-pushed the feat/release-workspaces branch from 0ad0387 to 854f280 Compare November 4, 2026 10:40
@neilime
neilime force-pushed the feat/release-orchestration branch from 8c5caf1 to d484859 Compare November 4, 2026 12:07
@neilime
neilime force-pushed the feat/release-workspaces branch from be53437 to 959cca4 Compare November 4, 2026 12:07
@neilime
neilime force-pushed the feat/release-orchestration branch from 4c4a26a to dfd1662 Compare November 4, 2026 14:30
@neilime
neilime force-pushed the feat/release-workspaces branch from 4a59c60 to 91784ab Compare November 4, 2026 14:30
@neilime
neilime force-pushed the feat/release-orchestration branch from dfd1662 to a737d06 Compare November 4, 2026 14:34
@neilime
neilime force-pushed the feat/release-workspaces branch from 91784ab to 34e96c0 Compare November 4, 2026 14:34
@neilime
neilime force-pushed the feat/release-orchestration branch from add4b89 to 7e9524c Compare November 4, 2026 15:15
@neilime
neilime force-pushed the feat/release-workspaces branch from 3877cb7 to 31f3b67 Compare November 4, 2026 15:15
Base automatically changed from feat/release-orchestration to main November 4, 2026 21:05
@neilime
neilime force-pushed the feat/release-workspaces branch from 8ffa243 to 46ff06a Compare November 4, 2026 22:45
@neilime
neilime force-pushed the feat/release-workspaces branch from 429e0c2 to fdf1fef Compare November 5, 2026 15:57
Add workspace discovery, Lerna version planning, isolated package validation,
and artifact-based publication with recovery. Reuse shared quality and release
verification actions and document the supported workflows.

BREAKING CHANGE: Use the string package configuration instead of separate package inputs.
Use ci-github-common/actions/quality/codecov for standalone coverage uploads.
@neilime
neilime force-pushed the feat/release-workspaces branch from 4ba454b to edb5946 Compare November 6, 2026 19:57
@neilime neilime changed the title feat(release): support npm/pnpm workspaces and Lerna releases feat(release): support workspace releases and package validation Nov 6, 2026
@neilime
neilime merged commit 55afe8e into main Nov 6, 2026
182 of 184 checks passed
@neilime
neilime deleted the feat/release-workspaces branch November 6, 2026 20:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type: feature Introduces a new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant