Release Runbook
Also available: Markdown · Plain text
Release Runbook — Gnomad Webcanvas
Version: 0.1.0-alpha.1 (Windows) / 0.1.0-beta.6 (Linux & macOS)
Last updated: June 2026
Overview
Releases are triggered by pushing a version tag (v*). GitHub Actions builds installers and publishes a GitHub Release automatically (no manual publish step).
Platform split (important):
| Tag pattern | CI builds | Channel |
|---|---|---|
v*-alpha* |
Windows only | Windows Alpha |
v*-beta* (no alpha) |
Linux + macOS only | Linux/macOS Beta |
This keeps Windows Alpha from rebuilding or overwriting Linux/macOS beta artifacts.
From Cursor: ask the agent to release, or run:
npm run release # full flow: test → tag → CI → publish
npm run release -- --retag # rebuild after CI fix (same version)
Workflow: .github/workflows/release.yml · Skill: .cursor/skills/release-gnomad-webcanvas/SKILL.md
GitHub Pages (/get/) deploys on every push to main via .github/workflows/deploy-web.yml.
Pre-release checklist
cd 05_apps_and_extensions/gnomad-preview
# Quality gates
npm run lint
npm run test
npx tsc -b --noEmit
npm run build
# Desktop smoke (local — use platform script)
npm run tauri:build:windows # Windows alpha
npm run tauri:build:linux # Linux beta
npm run tauri:build:macos # macOS beta
# Docs current
npm run docs:export
- CHANGELOG.md updated
-
npm run testpasses (unit tests) - Version bumped in
package.json,src-tauri/tauri.conf.json, and platform configs -
public/get/index.htmldownload links updated - QA_CHECKLIST.md completed for target platforms
- No secrets in diff (never commit
.env)
Version bump
Align these files:
| File | Field | Notes |
|---|---|---|
package.json |
"version" |
Repo default (currently Windows alpha) |
src-tauri/tauri.conf.json |
"version" |
Shared shell |
src-tauri/tauri.windows.conf.json |
"version" |
Windows Alpha |
src-tauri/tauri.linux.conf.json |
"version" |
Linux Beta |
src-tauri/tauri.macos.conf.json |
"version" |
macOS Beta |
CHANGELOG.md |
New section header | |
public/get/index.html |
Version lines + release URLs |
Tag and release
Windows Alpha
git pull origin main
# package.json + tauri.windows.conf.json at 0.1.0-alpha.N
npm run release # creates v0.1.0-alpha.N → Windows CI only
Linux / macOS Beta
Bump tauri.linux.conf.json and tauri.macos.conf.json (e.g. 0.1.0-beta.7).
Set package.json to the beta version for tagging, or tag manually:
git tag -a v0.1.0-beta.7 -m "Gnomad Webcanvas v0.1.0-beta.7"
git push origin v0.1.0-beta.7
To rebuild the same version after a CI fix:
npm run release -- --retag
| Job | Artifact |
|---|---|
Windows Alpha (v*-alpha*) |
NSIS .exe |
| macOS Beta (aarch64 + x86_64) | .dmg, .app |
| Ubuntu Beta (x86_64) | .deb, .rpm, AppImage |
CI uploads per-target SHA256SUMS-*.txt artifacts.
Post-CI steps
Automated by npm run release. Optional manual smoke test:
- Download one artifact per platform from the GitHub Release
- Walk docs/QA_CHECKLIST.md on at least one platform
- Verify Get page links resolve
Rollback
| Scenario | Action |
|---|---|
| Bad tag pushed | Delete release + tag; fix; re-tag |
| Single platform failed | Re-run failed job or patch and tag v0.1.1 |
| Windows alpha breaks Linux/macOS | Should not happen — alpha tags skip Linux/macOS jobs |
Signing secrets (GitHub Actions)
| Secret | Platform |
|---|---|
TAURI_SIGNING_PRIVATE_KEY |
Updater signatures (all) |
TAURI_SIGNING_PRIVATE_KEY_PASSWORD |
Updater |
APPLE_* |
macOS notarization |
WINDOWS_CERTIFICATE |
Windows code signing (optional) |