Allow the default builder_ref to be set in the a single location, the
_prepare shared workflow. Other workflows essentially have a override
option, and no longer need explicit default values set.
Improves a few things:
- Use the free macos-14 runners for arm64 builds. They are not as fast
the macos-13-xlarge runners used before, but they are free for public
repositories, meaning we can start doing nightly arm64 builds.
- Use different nix install and cache actions which are faster, and uses
a single action cache key, which avoids cache rate limit errors
which was slowing down cache create/restore times.
- Generally refactor and tidy up various bits and pieces in workflows.
Only run release jobs after all build jobs have completed, ensure only
one release job runs at a time, and also ensure update casks only runs
once after all release jobs have completed.
Builds using macOS 11 just takes a stupidly long time as, as Homebrew
seems to have dropped support, meaning all homebrew dependencies are
installed from source, rather than get installed from bottles.
Hence let's try upgrading minimum macOS version from 11 (Big Sur), to
12 (Monteray).
With nightly runs at midnight, it sometimes takes GitHub Actions over an
hour to start the build. On rare occasion this allows new commits from
the new day sneaking in.
Hence we adjust the scheduled build time for now, until the build tool
can be updated to support picking a target commit based on date limits.
By default the build script will enable native-comp if it detects it in
the source tree. This caused recently nightly builds of master to be
built without native-comp due to recent changes in Emacs' configure
script which broke native-comp detection. More details here:
https://github.com/jimeh/build-emacs-for-macos/issues/76
Hence we explicitly enable native-comp now for the nightly master and
emacs-28 builds, which will cause the build script to fail if it cannot
detect native-comp support in the source tree.
Any failure to detect native-comp in master and emacs-28 branches would
at this point be due to a bug/issue with the build script, rather than
Emacs' source tree.
The macos-10.15 runner is now deprecated and no longer usable. Hence all
GitHub Actions workflows using a macOS runner need to upgraded to
macos-11.
As far as I know, this will have a knock-on effect of causing Emacs
builds to require macOS 11.x (Big Sur) or later from now on.
This makes the workflow setup more flexible, and less copy/pasting
between workflows. And also makes the process of adding nightly builds
for non-master branches easier too.