Awake distributes public builds through GitHub Releases. The website should link to the stable latest-release asset URL instead of hosting binaries directly.
Use this URL for the main download button:
https://github.com/ium-team/Awake/releases/latest/download/Awake.dmg
Versioned assets are also uploaded for each release:
https://github.com/ium-team/Awake/releases/download/v0.1.0/Awake-0.1.0.dmg
https://github.com/ium-team/Awake/releases/download/v0.1.0/Awake-0.1.0.zip
Create release artifacts locally:
scripts/package-release.sh 0.1.0Artifacts:
dist/Awake.dmg: stable filename for website links and normal macOS installationdist/Awake-0.1.0.dmg: versioned disk imagedist/Awake.zip: stable archive for advanced/manual installsdist/Awake-0.1.0.zip: versioned archivedist/checksums.txt: SHA-256 checksums
The DMG contains Awake.app and an Applications shortcut so users can install by dragging the app into Applications. It uses a checked-in Finder icon-view layout with fixed icon positions, a native background color, and hidden toolbar/status bar. Packaging does not depend on GUI scripting, so local builds and GitHub Actions create the same installer view.
The DMG is created from an unmounted staging folder instead of a writable mounted disk image. This prevents packaging-time .background or .fseventsd support folders from being included. The packaging script mounts the finished image read-only and fails if any visible root item besides Awake.app and Applications is present.
Create a draft release:
scripts/create-github-release.sh 0.1.0 --draftCreate a prerelease:
scripts/create-github-release.sh 0.1.0 --prereleaseCreate a latest public release:
scripts/create-github-release.sh 0.1.0 --latestThe script requires:
- a clean git working tree
- GitHub CLI authenticated with repository write access
- the target branch pushed to
origin
Run the Release workflow manually from GitHub Actions with:
version: for example0.1.0mode:draft,prerelease, orlatest
The workflow creates the tag v<version> if needed, packages the app, and uploads the release assets.
Public distribution should use Apple Developer ID signing and notarization. Without it, users may see Gatekeeper warnings.
Local signed package:
CODESIGN_IDENTITY="Developer ID Application: Your Name (TEAMID)" \
NOTARY_PROFILE="awake-notary" \
scripts/package-release.sh 0.1.0Before running this, create the notarytool keychain profile once:
xcrun notarytool store-credentials awake-notary \
--apple-id "you@example.com" \
--team-id "TEAMID" \
--password "app-specific-password"NOTARY_PROFILE is optional. If it is omitted, the app is packaged without notarization. If CODESIGN_IDENTITY is omitted, the script applies only an ad-hoc signature for local integrity and testing.