Update the build-emacs-for-macos to v0.5.0, which includes a new
emacs-builder CLI tool written in Go, which handles signing, dmg
packaging, notarizing and stapling of Emacs builds. The main build
process is still handled by the old Ruby script for now however.
emacs-builder also includes plan and release commands, negating the need
for the our custom github-release CLI tool.
BREAKING CHANGE: Release assets are now signed *.dmg files instead
of *.tbz archives.
This will allow me to run test builds against experimental branches of
the build-emacs-for-macos build script, and publish them under a
pre-release "Test Builds" GitHub Release, rather than a normal nightly
release.
This tool is responsible for three distinct operations:
- Plan:
- Accepts a optional git ref (branch/tag), defaulting to "master"
branch if not specified.
- Fetches commit information about the git-ref from the
emacs-mirror/emacs GitHub repo.
- Based on commit info, a plan.yml file is created, key information in
it is the git ref, git SHA, date of commit, current macOS version
and CPU architecture.
- Check:
- Loads plan.yml and checks if GitHub Release name specified in plan
exists, exiting with an error if it does not exist.
- Checks if GitHub Release contains a asset file matching the name of
the archive specified in the plan, exiting with an error if it does
not exist.
- If both GitHub Release and asset exist, it exits with not errors.
- Release:
- Loads plan.yml and checks if archive specified in plan exists
on disk.
- Checks if GitHub Release name specified in plan exists, creating it
if it does not exist.
- Checks if GitHub Release contains a asset file matching that of
archive specified in plan. If the asset it missing, it will be
uploaded. If it exists but size does not match that of archive on
disk, the existing asset will be replaced.