feat(ci): add extension store release workflow - #4822
Merged
Conversation
tmux new-window bare auto-index allocation can fail with 'index N in use' on sessions with stale index state, killing every role dispatch. Windows are tracked by name, so -a (append) is always safe. Includes the matching learning.
workflow_dispatch build of store-submittable extension zips (Chrome MV3, Firefox MV3 + AMO sources) uploaded as a version-named artifact, gated on pnpm --filter kilo-extension verify, with a pending-bump guard that fails a re-press fast while any extension-version-bump-* branch exists. After a successful main build, a second job (the only one with write permissions) patch-bumps apps/extension/package.json and opens the bump PR so the next dispatch produces a higher version.
Contributor
Code Review SummaryStatus: No Issues Found | Recommendation: Merge Executive SummaryReviewed the new Files Reviewed (4 files)
Reviewed by claude-sonnet-5 · Input: 12 · Output: 5.3K · Cached: 212.1K Review guidance: REVIEW.md from base branch |
pandemicsyn
approved these changes
Jul 28, 2026
# Conflicts: # .kilo_workflow/dispatch-role.sh
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
What: a new
workflow_dispatchGitHub Actions workflow,.github/workflows/extension-store-release.yml("Extension Store Release" in the Actions sidebar).Why: marketing needs store-submittable extension builds on demand, and the stores reject re-used version numbers — today producing them is a manual local build plus a manual
package.jsonedit.How: one button press runs two jobs:
build-artifacts(read-only token) — installs, gates onpnpm --filter kilo-extension verify, runs the unmodifiedzip/zip:firefoxscripts, and uploads the Chrome MV3 zip, Firefox MV3 zip, and AMO sources zip as one artifact namedextension-store-<version>(30-day retention). Before installing, a guard fails the run in seconds if anyextension-version-bump-*branch still exists (a previous bump PR not yet merged), naming the stale branch and its recovery.bump-version(runs only when the dispatched ref ismain; the only job with write permissions) — patch-bumpsapps/extension/package.jsonvianpm version patch --no-git-tag-version, pushes branchextension-version-bump-<new>, and opens the bump PR (assigned toiscekic, revieweriscekic) whose body explains the released version, the bump, and how to nudge its pending checks.After the bump PR merges, the next press produces the next version with no manual edit (merged bump branches self-delete —
delete_branch_on_mergeis enabled on this repo, so the guard cannot false-trip on them). The two-job split keeps the job running third-party build tooling on a read-only token; the write-permission job installs nothing. The branch also carries two.kilo_workflow/infra commits (adispatch-role.shtmux fix and two workflow learnings), which are workflow tooling, not product surface.Verification
CI YAML — no product runtime path exists to click through; verified locally by an independent verifier round plus machine-parse checks:
safe_load); every expression,needs,ifguard,permissionsblock, artifact name/path, and SHA pin desk-checked against the acceptance criteria — all four action SHA pins byte-identical toextension-ci.yml;actionlintnot available on this machine (noted, nothing installed).pnpm --filter kilo-extension zip→.output/kilo-extension-0.1.1-chrome.zip;pnpm --filter kilo-extension zip:firefox→kilo-extension-0.1.1-firefox.zip+kilo-extension-0.1.1-sources.zip— all three paths exactly match the upload step's paths, and both built manifests'versionequalsapps/extension/package.json's.npm version patch --no-git-tag-versiondry-run in a temp copy → single-lineversiondiff (0.1.1→0.1.2), no other files, no lockfile churn.pnpm format:checkclean (oxfmt normalized comment spacing on threepermissionslines; block-scalar heredoc untouched).Inert by design until this merges — stated as fact, not run: real
workflow_dispatch, artifact download from a run, the pending-bump guard trip, and bump-PR creation (workflow_dispatchis only offered for workflows on the default branch).Visual Changes
N/A
Reviewer Notes
workflow_dispatchis unavailable to read-only members. Org-permissions action, outside this change.gh pr createhas no in-repo precedent; pushes are proven viakilo-app-release.ymltags). If the org/repo setting "Allow GitHub Actions to create and approve pull requests" (Settings → Actions → General → Workflow permissions) is off — it is not API-readable with the current token (403, verified) — thebump-versionjob fails loudly after artifacts upload. Please confirm the setting once, ideally before or at first dispatch; if it is off, enable it and re-run the failed job (artifacts stay valid). Accepted residual risk if unconfirmed: the workflow is "artifacts only" until the first bump attempt.VITE_POSTHOG_API_KEYenables analytics in store builds; until then builds are analytics-less by design (same as today's local builds —wxt.config.tsonly warns).GITHUB_TOKENPRs do not trigger workflow runs — the bump PR's own body says this to its reviewer.iscekic; review requested fromeshurakovandjeanduplessisper cloud convention.