Skip to content

ci: add CI, build, and publish GitHub Actions workflows - #7

Merged
sheepbox8646 merged 2 commits into
mainfrom
ci/github-actions
Jun 30, 2026
Merged

sheepbox8646 merged 2 commits into
mainfrom
ci/github-actions

Conversation

@sheepbox8646

Copy link
Copy Markdown
Member

Add three workflows plus the env/distribution plumbing they rely on:

  • ci.yml: typecheck + vitest on push to main and on every PR
  • build.yml: cross-platform test packaging (mac arm64/x64, windows, linux) on PRs and manual dispatch, uploading the installers as artifacts
  • publish.yml: on v* tags, package every platform, generate the changelog and GitHub Release via changelogithub, then attach the installers and upload them (plus the update manifest) to Cloudflare R2 for public download

Supporting changes:

  • scripts/with-env.mjs loads the monorepo-root .env for the electron-builder step (CI/Action env always wins), keeps macOS builds unsigned without a keychain prompt unless CSC_LINK is set, and emits the latest*.yml update manifest + app-update.yml when R2_PUBLIC_BASE_URL is configured
  • electron-builder.yml: drop the hardcoded mac identity: null (signing is now driven by env)
  • .env.example: reserve the optional Apple-signing and Cloudflare R2 variables
  • CONTRIBUTING.md: document every env var, the workflows, how to cut a release, and how to enable signing

sheepbox8646 and others added 2 commits June 30, 2026 21:49
Add three workflows plus the env/distribution plumbing they rely on:
- ci.yml: typecheck + vitest on push to main and on every PR
- build.yml: cross-platform test packaging (mac arm64/x64, windows, linux)
  on PRs and manual dispatch, uploading the installers as artifacts
- publish.yml: on v* tags, package every platform, generate the changelog and
  GitHub Release via changelogithub, then attach the installers and upload them
  (plus the update manifest) to Cloudflare R2 for public download

Supporting changes:
- scripts/with-env.mjs loads the monorepo-root .env for the electron-builder step
  (CI/Action env always wins), keeps macOS builds unsigned without a keychain
  prompt unless CSC_LINK is set, and emits the latest*.yml update manifest +
  app-update.yml when R2_PUBLIC_BASE_URL is configured
- electron-builder.yml: drop the hardcoded mac identity: null (signing is now
  driven by env)
- .env.example: reserve the optional Apple-signing and Cloudflare R2 variables
- CONTRIBUTING.md: document every env var, the workflows, how to cut a release,
  and how to enable signing

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The scoped package name @oh-my-github/client sanitizes to @oh-my-githubclient,
whose '@' is illegal in an AppImage executable path, failing the Linux build.
Set a clean linux.executableName (oh-my-github); macOS/Windows are unaffected.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@sheepbox8646
sheepbox8646 merged commit e6f308c into main Jun 30, 2026
4 checks passed
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