Skip to content

fix(ci): lockstep-publish wrappers without writing to the repo#100

Merged
vivek7405 merged 1 commit into
mainfrom
fix/lockstep-no-git-publish
May 25, 2026
Merged

fix(ci): lockstep-publish wrappers without writing to the repo#100
vivek7405 merged 1 commit into
mainfrom
fix/lockstep-no-git-publish

Conversation

@vivek7405
Copy link
Copy Markdown
Collaborator

Problem

The wrapper lockstep step has failed on every real release because the webjsdev org disables write permissions for GITHUB_TOKEN:

Both fight the org policy. cli/server publish fine; only the wrappers strand.

Fix (option 1: don't write to the repo)

The wrapper version is recomputed from CLI_VERSION on every release, so the repo copy of the wrapper package.json is irrelevant to publishing. This drops all git operations from the lockstep step and just:

  1. sets the version + cli dep range in the runner's working tree (never committed), then
  2. npm publish (idempotent: skips a version already on the registry).

No push, no PR, no PAT, no org-setting change. The repo's wrapper package.json versions intentionally drift; npm is their source of truth and nothing reads the repo values.

Also adds a lockstep_only workflow_dispatch input that runs only this step at the current cli version, as a recovery path (and used to publish the currently-stranded create-webjs@0.9.0 / webjsdev@0.9.0).

Verification plan

After merge, dispatch release.yml with lockstep_only=true. It should publish create-webjs@0.9.0 and webjsdev@0.9.0 (currently stranded at 0.8.6) using the workflow's NPM_TOKEN, proving the no-git path works end-to-end.

The webjsdev org disables write permissions for GITHUB_TOKEN, so both
prior lockstep designs failed: direct push is refused by branch
protection, and `gh pr create` is refused with "GitHub Actions is not
permitted to create or approve pull requests".

Since the wrapper version is recomputed from CLI_VERSION on every
release, the repo copy of the wrapper package.json is irrelevant to
publishing. Drop all git operations from the lockstep step and just set
the version in the runner's working tree + `npm publish`. No push, no
PR, no org-policy fight. The repo's wrapper package.json versions
intentionally drift (npm is their source of truth).

Also add a `lockstep_only` workflow_dispatch input that runs only this
step at the current CLI version, as a recovery path for a release whose
wrapper publish did not land.
@vivek7405 vivek7405 merged commit 52cc3f2 into main May 25, 2026
@vivek7405 vivek7405 deleted the fix/lockstep-no-git-publish branch May 25, 2026 09:00
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