This repository is configured to use GitHub Releases as the first public distribution channel for desktop builds.
Current public release scope:
- macOS
- Linux (Debian package in the public release pipeline)
- Manual validation workflows build and upload temporary artifacts when you explicitly dispatch them.
- The
publish-release.ymlworkflow creates or updates a GitHub Release draft. - The Tauri updater is configured to read
latest.jsonfrom the latest GitHub Release. - macOS public releases build signed app bundle archives (
.app.tar.gz) instead of DMG installers in the GitHub release pipeline. - Linux public releases build
.debpackages in the GitHub release pipeline.
Updater signing:
TAURI_SIGNING_PRIVATE_KEYTAURI_SIGNING_PRIVATE_KEY_PASSWORD(optional, only if your private key uses a password)
macOS signing and notarization:
APPLE_CERTIFICATEAPPLE_CERTIFICATE_PASSWORDAPPLE_SIGNING_IDENTITYAPPLE_TEAM_IDAPPLE_IDAPPLE_PASSWORD
- Generate and store the Tauri updater signing key pair in a safe place.
- Keep the private key out of the repository and Git history.
- Add the public key to
src-tauri/tauri.conf.json. - Create and protect the
releaseGitHub environment. - Configure the GitHub environment secrets listed above.
- Follow the bootstrap checklist in docs/GITHUB_RELEASE_BOOTSTRAP.md.
- Run the publish workflow manually or push a tag like
v0.1.1.
- Update the application version.
- Push a tag in the format
v<version>or trigger the publish workflow manually. - For
workflow_dispatch, chooseall,linux-x64,macos-arm64, ormacos-inteldepending on what you want to validate. - Let the workflow build the selected bundles plus updater artifacts.
- Review the generated GitHub Release draft.
- Publish the draft once the assets are validated.
- Release page:
https://github.com/wharley/DevCommandCenter/releases/latest
- Updater metadata used by the app:
https://github.com/wharley/DevCommandCenter/releases/latest/download/latest.json
Notes:
- The SHA-256 digest shown by GitHub Actions artifact upload steps is not a public download URL. It is only a checksum for the temporary workflow artifact created in that run.
- For public distribution, use GitHub Releases assets and the release URLs above.
- If someone forks this repository and wants their own signed downloads, they should use their own signing keys, their own Apple credentials, and their own GitHub Releases endpoint.
- The updater requires signed artifacts. This cannot be skipped.
- The endpoint in
tauri.conf.jsononly works after the first release containinglatest.json. - If a release is created without updater artifacts, using
releases/latest/download/latest.jsonmay break update checks for existing users. - macOS release builds depend on Apple signing and notarization secrets being configured correctly.