Skip to content

ci: adopt shared Lerna releases and update workflows - #1905

Merged
neilime merged 1 commit into
mainfrom
feat/shared-release-workflow
Nov 8, 2026
Merged

neilime merged 1 commit into
mainfrom
feat/shared-release-workflow

Conversation

@neilime

@neilime neilime commented Nov 5, 2026 •

Copy link
Copy Markdown
Member

Replace custom package publication with shared Lerna preparation, CI package validation, and publication of the validated artifacts. Releases run manually or monthly and can be forced explicitly.

Changes

  • Initialize Biome with the package’s installed CLI and reference its bundled schema in generated configurations. Update the E2E expectations and check Biome exit codes, allowing successful lint/format summaries on stderr while preserving strict lint flags.
  • Run release labeling only on pull request events. Keep preparation, validation and publication as separate jobs; skip validation/publication when no release is planned.
  • Use GitHub self-repository references ($/) for local actions and reusable workflows.
  • Pin every external GitHub Action and reusable workflow to its latest stable release commit, including ci-github-common 2.0.2 and ci-github-publish 3.0.0. Use repository-configured PR-title validation with only contents: read.
  • Discover public workspaces and validate installed CLI help/version commands through the single package configuration.
  • Prepare versions with the release GitHub App, publish through npm trusted publishing, and reuse shared no-change detection, configuration defaults, optional summaries, and retry behavior.
  • Expose the React package CLI entry point required by installed-package checks, test its help output and installation failure handling directly, and document release operation. Keep PR release labeling separate from publication.

Validation

Release trigger, manual force, no-change gate, validation dependency, configuration and artifact-handoff checks pass against the released shared workflows.

Actionlint, YAML formatting, git diff --check, and released action/workflow input, output, secret, and permission contracts pass locally. The CI checks run source tests and package validation against the pinned shared implementation.

Build, all 171 tests with coverage, and strict source lint are validated on Node.js 26.13.0 with pnpm 12.17.0 and Yarn Classic. The installed-package E2E tests cover both Core and React in single-package and monorepo projects.

Before merging

Uses released ci-github-nodejs 2.1.0, pinned to 02a04ad25ceaacdf3b7200e45fb7fec07fadf4fa for preparation, validation and publication.

Configure CI_BOT_APP_CLIENT_ID and CI_BOT_APP_PRIVATE_KEY with permission to push signed version commits/tags and dispatch the prepared workflow. Configure npm trusted publishing for this repository and release.yml, with no npm environment restriction. Any Pages environment must allow prepared release tags. CHANGELOG_SUMMARY is optional.

@github-actions github-actions Bot added the type: feature Introduces a new feature label Nov 5, 2026
@neilime
neilime force-pushed the feat/shared-release-workflow branch from c6df98f to 54a5896 Compare November 6, 2026 19:57
@neilime neilime changed the title feat(ci): adopt shared package release workflow ci(release): adopt shared Lerna releases for tooling packages Nov 6, 2026
@github-actions github-actions Bot added the type: maintenance Performs maintenance work label Nov 6, 2026
@neilime
neilime force-pushed the feat/shared-release-workflow branch 3 times, most recently from 76abdfa to b9e10f4 Compare November 8, 2026 18:42
@neilime neilime changed the title ci(release): adopt shared Lerna releases for tooling packages ci: adopt shared Lerna releases and update workflows Nov 8, 2026
@neilime
neilime force-pushed the feat/shared-release-workflow branch 2 times, most recently from d0c6292 to 66ad42b Compare November 8, 2026 19:12
@neilime
neilime marked this pull request as ready for review November 8, 2026 19:39
@neilime
neilime force-pushed the feat/shared-release-workflow branch from 66ad42b to a894def Compare November 8, 2026 20:06
@codecov

codecov Bot commented Nov 8, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.68%. Comparing base (9c8312b) to head (d19ab41).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1905      +/-   ##
==========================================
+ Coverage   90.55%   90.68%   +0.12%     
==========================================
  Files          41       42       +1     
  Lines        1197     1202       +5     
  Branches      229      230       +1     
==========================================
+ Hits         1084     1090       +6     
  Misses        101      101              
+ Partials       12       11       -1     

☔ 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.

Adopt shared Lerna release planning and validated package publication.
Exercise installed package CLIs, expose the React CLI entry point, and
document manual releases, setup, and recovery.

Pin GitHub Actions and reusable workflows to current stable releases.
Adapt workflow permissions and repository-configured PR title validation.
@neilime
neilime force-pushed the feat/shared-release-workflow branch from a894def to d19ab41 Compare November 8, 2026 20:33
@neilime
neilime merged commit 4279793 into main Nov 8, 2026
16 of 18 checks passed
@neilime
neilime deleted the feat/shared-release-workflow branch November 8, 2026 20:57
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 type: maintenance Performs maintenance work

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant