Skip to contentSkip to conversation

ci: upgrade to using macos-13

PATCH In review Johannes Schindelin via GitGitGadget 2 participants 2 messages Nov 3, 2023

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ci: upgrade to using macos-13

From: Johannes Schindelin <[email protected]>

In April, GitHub announced that the macos-13 pool is available:
https://github.blog/changelog/2023-04-24-github-actions-macos-13-is-now-available/.
It is only a matter of time until the macos-12 pool is going away, therefore we should switch now, without pressure of a looming deadline.

Since the macos-13 runners no longer include Python2, we also drop specifically testing with Python2 and switch uniformly to Python3, see
https://github.com/actions/runner-images/blob/HEAD/images/macos/macos-13-Readme.md
for details about the software available on the macos-13 pool's runners.

Also, on macOS 13, Homebrew seems to install a gcc@9 package that no longer comes with a regular unistd.h (there seems only to be a ssp/unistd.h), and hence builds would fail with:

In file included from base85.c:1:
git-compat-util.h:223:10: fatal error: unistd.h: No such file or directory
223 | #include <unistd.h>
| ^~~~~~~~~~
compilation terminated.

The reason why we install GCC v9.x explicitly is historical, and back in the days it was because it was the _newest_ version available via
Homebrew: 176441bfb58 (ci: build Git with GCC 9 in the 'osx-gcc' build job, 2019-11-27).

To reinstate the spirit of that commit _and_ to fix that build failure, let's switch to the now-newest GCC version: v13.x.

---
ci: upgrade to using macos-13

GitHub announced in April that the macos-13 pool is available
[https://github.blog/changelog/2023-04-24-github-actions-macos-13-is-now-available/],
so let's switch. This might also stave off CI failures we experience over in GitGitGadget (e.g. here
[https://github.com/gitgitgadget/git/actions/runs/6729366919/job/18290134547#step:3:56])
and in Git for Windows (e.g. here
[https://github.com/git-for-windows/git/actions/runs/6708618181/job/18252834721#step:3:57])
where occasionally macos-12-xl runners seem to be co-opted to cope with macos-12 workload (and the former don't have Python2 in their PATH).

Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1607%2Fdscho%2Fswitch-ci-to-macos-13-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1607/dscho/switch-ci-to-macos-13-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/1607

 .github/workflows/main.yml | 6 +++---
 ci/lib.sh                  | 6 ++----
 2 files changed, 5 insertions(+), 7 deletions(-)
.github/workflows/main.yml +3 -3
index dcf7d78f1d0..9fdbd540289 100644
@@ -276,11 +276,11 @@ jobs:
             pool: ubuntu-20.04
           - jobname: osx-clang
             cc: clang
-            pool: macos-12
+            pool: macos-13
           - jobname: osx-gcc
             cc: gcc
-            cc_package: gcc-9
-            pool: macos-12
+            cc_package: gcc-13
+            pool: macos-13
           - jobname: linux-gcc-default
             cc: gcc
             pool: ubuntu-latest
ci/lib.sh +2 -4
index 6fbb5bade12..bc0b23099df 100755
@@ -253,11 +253,9 @@ ubuntu-*)
 	export PATH="$GIT_LFS_PATH:$P4_PATH:$PATH"
 	;;
 macos-*)
-	if [ "$jobname" = osx-gcc ]
+	MAKEFLAGS="$MAKEFLAGS PYTHON_PATH=$(which python3)"
+	if [ "$jobname" != osx-gcc ]
 	then
-		MAKEFLAGS="$MAKEFLAGS PYTHON_PATH=$(which python3)"
-	else
-		MAKEFLAGS="$MAKEFLAGS PYTHON_PATH=$(which python2)"
 		MAKEFLAGS="$MAKEFLAGS APPLE_COMMON_CRYPTO_SHA1=Yes"
 	fi
 	;;

base-commit: 692be87cbba55e8488f805d236f2ad50483bd7d5

Signature · 1 line
gitgitgadget
#1 lore raw

"Johannes Schindelin via GitGitGadget" <[email protected]>

Quoted 9 lines · writes:

From: Johannes Schindelin <[email protected]>

In April, GitHub announced that the macos-13 pool is available:
https://github.blog/changelog/2023-04-24-github-actions-macos-13-is-now-available/.
It is only a matter of time until the macos-12 pool is going away, therefore we should switch now, without pressure of a looming deadline.
...
To reinstate the spirit of that commit _and_ to fix that build failure, let's switch to the now-newest GCC version: v13.x.

Thank you very much for a well reasoned patch that is very timely. I am tempted to fast-track this one down from 'seen' to 'maint' before we tag -rc1.

Will queue.