Skip to content

ci: automate package releases (vsix embed + multi-OS matrix) — #44 - #288

Closed
ItsJazii wants to merge 3 commits into
trypear:mainfrom
ItsJazii:cursor/package-releases-automation-d822
Closed

ItsJazii wants to merge 3 commits into
trypear:mainfrom
ItsJazii:cursor/package-releases-automation-d822

Conversation

@ItsJazii

Copy link
Copy Markdown

Summary

Draft toward #44 (Package Releases Automation).

Hard problem addressed: stop the manual “install .vsix in a local VS Code/Pear window, then copy ~/.vscode/extensions/pearai.pearai-* into the packaged app” step. A .vsix is a zip — scripts/pearai/embed-vsix.sh unpacks extension/ into resources/app/extensions/<publisher>.<name>-<version> and removes the pearai-submodule stub.

Also includes:

  • Native GitHub Actions matrix: ubuntu-22.04, ubuntu-24.04-arm, macos-13, macos-14, windows-2022 (not a fake one-machine-builds-all claim)
  • Explicit clones of pearai-submodule and PearAI-Roo-Code (.gitmodules without gitlink SHAs means submodules: recursive is a no-op)
  • Real gulp paths/tasks and artifact collection from ../VSCode-* + .build/
  • Optional signing; -unsigned artifacts if secrets are missing
  • Maintainer docs in .github/RELEASE.md + CONTRIBUTING packaging update

vs competing PRs

Gap #283 #286 This PR
Vsix embed Missing Unzip with wrong folder / cwd issues Correct publisher.name-version layout
Extension clones No submodules: recursive (no-op) Explicit clone script
Artifact paths Often empty dist/*.dmg Zips VSCode-* inside repo Sibling ../VSCode-* + installers
Signing Fragile env checks None Detect secrets in a run step; unsigned OK

Fork PR for review history: https://github.com/ItsJazii/pearai-app/pull/1

Test plan

  • Packaging helper scripts validated in CI on the fork (Package & Release → Validate packaging scripts)
  • Maintainer workflow_dispatch with dry_run=true and no secrets — confirm pearai.pearai-* lands under resources/app/extensions and stub is gone
  • Optional: add signing secrets per .github/RELEASE.md and publish draft release

Happy to iterate on feedback from @nang-dev / maintainers.

…ut a GUI install.

Replaces the manual CONTRIBUTING flow (install vsix in VS Code, then copy ~/.vscode/extensions into the gulp output) with native macOS/Windows/Linux runners, explicit extension clones, optional signing, and draft GitHub Releases. Unsigned artifacts are a first-class path when maintainer secrets are missing.

Co-authored-by: Jazii <ItsJazii@users.noreply.github.com>
@ItsJazii
ItsJazii marked this pull request as ready for review September 15, 2026 07:35
@ItsJazii
ItsJazii requested review from a team, Fryingpannn and nang-dev as code owners September 15, 2026 07:36
@ItsJazii

Copy link
Copy Markdown
Author

Update: marked ready for review. Also kicked off a Package & Release dry-run (dry_run=true, no signing secrets) on the fork branch to validate the full matrix path: https://github.com/ItsJazii/pearai-app/actions/runs/34942517850

Script self-tests already green on the PR path. Happy to address review comments quickly.

Expand embed/collect self-tests (win32/darwin, re-embed, error paths, unsigned
deb/rpm/setup). Install the editor with npm ci instead of yarn --frozen-lockfile
because Yarn 1.22 cannot parse the pre-existing yarn.lock on main. Stop
cancelling workflow_dispatch dry-runs when a later PR validate run starts.

Co-authored-by: Jazii <ItsJazii@users.noreply.github.com>
@ItsJazii

Copy link
Copy Markdown
Author

Follow-up polish pushed to the same branch (16d98901288):

  • Wider offline embed/collect self-tests
  • Packaging workflow uses npm ci + npm run gulp (avoids the pre-existing Yarn 1 yarn.lock parse break)
  • Dry-run concurrency no longer cancels in-progress matrix runs when a PR validate fires

Re-dispatched fork dry-run with the fixed workflow.

pearai-submodule prepackage downloads a non-zip S3 esbuild archive when
GITHUB_ACTIONS is set on ARM. Clear that env so npm esbuild@0.17.19 is used
on native arm runners. Roo vsix runs vscode:prepublish -> lint:extension with
a Unix env assignment that Windows cmd cannot parse; rewrite the hook to the
production compile only. Roo failure is non-fatal so the PearAI vsix still embeds.

Co-authored-by: Jazii <ItsJazii@users.noreply.github.com>
@ItsJazii

Copy link
Copy Markdown
Author

Follow-up: fixed fork dry-run vsix step (91db8b8682c) — ARM skips the broken S3 esbuild.zip path; Roo prepublish no longer depends on Unix-only lint env on Windows. Re-dispatched dry-run on the updated branch.

@ItsJazii

Copy link
Copy Markdown
Author

Closing — not pursuing; repo appears inactive.

@ItsJazii ItsJazii closed this Sep 15, 2026
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.

2 participants