Skip to content

Latest commit

 

History

History
54 lines (42 loc) · 2.42 KB

development.md

File metadata and controls

54 lines (42 loc) · 2.42 KB

Development and releases

Install Bazelisk, Node.js 24+, and pnpm version pinned in package.json (Corepack can select it automatically).

pnpm install --frozen-lockfile
pnpm hooks:install
pnpm build
pnpm test
pnpm test:bcr

Corresponding Bazel commands bazelisk build //... and bazelisk test //.... Run bazelisk test //... inside bcr_test/ to test module as dependency. GitHub Actions CI runs Bazel 9.2.0/8.6.0 module/BCR and host-browser checks on Linux/macOS, plus worker artifact smoke on macOS/Windows. Local Linux browsers run namespace checks, and KVM VRT runs production VRT. Local overrides belong in .bazelrc.user.

Lefthook validates Conventional Commit messages, for example feat: add browser test rule or fix: resolve test runfiles. CI also validates pull request titles and commits. Use conventional title for squash merges so Release Please can determine next version.

Release automation

Release Please maintains PR updating version.txt, CHANGELOG.md, and .release-please-manifest.json. Merging it creates version tag. Module release workflow builds attested archive, publishes it to GitHub Releases, and submits BCR update. See workflow and BCR configuration for publishing destinations.

MODULE.bazel uses development version 0.0.0; Release Please tracks the release in version.txt. Archive rules_web_e2e-vX.Y.Z.tar.gz has prefix rules_web_e2e-X.Y.Z. The module release workflow tests the tag, packages the attested archive, and submits the BCR update.

Maintainers configure these Actions secrets with access to this repository:

  • GH_RELEASE_TOKEN: PAT with repository access and Contents, Pull requests, and Issues write permissions. PAT lets generated tags trigger downstream workflows.
  • BCR_PUBLISH_TOKEN: token for configured registry fork and publish-to-bcr integration.

Prepare archive locally for existing tag:

.github/workflows/release_prep.sh v0.1.0 > release_notes.txt

module-release workflow accepts existing tag through manual dispatch for retries. Running local preparation script does not publish release.