3.5 KiB
Release Guide
EdgeEver releases are prepared with a single local command. The command validates the repository, creates the tracking Issue, updates versions, prepares and audits native assets in a Draft Release, publishes the Release, and installs the final macOS DMG.
This process does not perform mobile store delivery. Google Play and App Store Connect delivery is a separate, explicit operation documented in Mobile Store Delivery.
Prerequisites
- Run the command on macOS from a clean
mainbranch that exactly matchesorigin/main. - Authenticate GitHub CLI with access to
tianma-if/edgeever. - Commit all user-facing changes before starting the release.
- Ensure every English change bullet has a corresponding Chinese bullet.
Command
bun run release -- \
--issue-title "Improve the release workflow" \
--label enhancement \
--change-en "Run required release checks in parallel." \
--change-zh "并行执行发布所需检查。"
Repeat --change-en and --change-zh in matching pairs when a Release contains
multiple changes. Repeat --label when the tracking Issue needs multiple labels.
Use --dry-run to inspect the native rebuild plan and generated bilingual notes
without changing local or GitHub state. --skip-install skips the post-release
DMG installation and is intended for exceptional or non-macOS runs; normal
maintainer releases should install and launch the published application.
Automated Flow
- Verify
main, the working tree, GitHub authentication, the latest formal Release, and the local/remote commit relationship. - Run Web type checking, mobile type checking, the Web production build, and release-planning tests concurrently.
- Use
scripts/plan-native-release.mjsto determine whether desktop and Android assets must be rebuilt or can be reused. Only affected native versions are updated. - Create a bilingual tracking Issue, commit the version changes to
main, push, and create a Draft Release with bilingual notes. - Dispatch the desktop and Android asset workflows concurrently, wait for both, and verify filenames, sizes, and checksums before publication.
- Publish the Release and wait only for the required desktop and Android post-publication audits.
- Print the Demo deployment run or workflow URL. Demo deployment continues in the background and does not delay release completion.
- Link and close the tracking Issue, download the final DMG, verify its checksum
and signature, replace
/Applications/EdgeEver.app, and launch it.
No Release step builds a Play AAB, starts an EAS iOS build, or uploads to a mobile store.
The release version commit includes the standard GitHub Actions skip marker. Draft asset workflows are dispatched explicitly, so this avoids an unnecessary push-triggered Android build without skipping required release builds.
Failure and Resume Behavior
- A validation or Draft asset failure leaves the Release unpublished.
- If the process stops after the version commit and Draft creation, rerun the
same command. A Draft whose version and target match the current
maincommit is resumed instead of creating another Issue, commit, or Release. - A failed post-publication native audit attempts to return the Release to Draft and leaves the Issue open for correction.
- A failed application replacement restores the previous app from the macOS Trash backup when possible.
- Demo deployment status is intentionally independent of Release completion; use the printed Actions URL to inspect or retry it.