diff --git a/.github/scripts/install_deps.sh b/.github/scripts/install_deps.sh index bad4c9a4..9e572ae6 100755 --- a/.github/scripts/install_deps.sh +++ b/.github/scripts/install_deps.sh @@ -2,7 +2,7 @@ # This script requires `sh` instead of `bash` because the latter is not always installed on FreeBSD. set -eu -case "${1%-*}" in +case "${1%%-*}" in ubuntu|debian) sudo apt-get -qq update sudo apt-get install -yq bison libpng-dev pkgconf @@ -14,7 +14,8 @@ case "${1%-*}" in brew install bison md5sha1sum make # Export `bison` to allow using the version we install from Homebrew, # instead of the outdated one preinstalled on macOS (which doesn't even support `-Wall`...) - export PATH="/opt/homebrew/opt/bison/bin:$PATH" + # This path ↓ is used on Intel macOS, and this one ↓ on ARM ones. + export PATH="/usr/local/opt/bison/bin:/opt/homebrew/opt/bison/bin:$PATH" printf 'PATH=%s\n' "$PATH" >>"$GITHUB_ENV" # Make it available to later CI steps too ;; freebsd) @@ -27,7 +28,8 @@ case "${1%-*}" in bison() { win_bison "$@"; } # An alias doesn't work, so we use a function instead. ;; *) - echo "::error:: Cannot install deps for OS '$1'" + echo "Cannot install deps for OS '$1'" + exit 1 ;; esac diff --git a/.github/workflows/create-release-artifacts.yml b/.github/workflows/create-release-artifacts.yml index 4e17714c..6a07e83e 100644 --- a/.github/workflows/create-release-artifacts.yml +++ b/.github/workflows/create-release-artifacts.yml @@ -51,7 +51,7 @@ jobs: if-no-files-found: error macos: - runs-on: macos-14 + runs-on: macos-26 steps: - name: Checkout repo uses: actions/checkout@v6 diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index c78f51e7..3712812e 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -36,11 +36,12 @@ jobs: unix: strategy: matrix: - os: [ubuntu-22.04, macos-14] + os: [ubuntu-22.04, macos-15-intel, macos-26] cxx: [g++, clang++] buildsys: [make, cmake] - exclude: - - { os: macos-14, cxx: g++ } # Don't use `g++` on macOS; it's just an alias to `clang++`. + exclude: # Don't use `g++` on macOS; it's just an alias to `clang++`. + - { os: macos-15-intel, cxx: g++ } + - { os: macos-26, cxx: g++ } fail-fast: false runs-on: ${{ matrix.os }} steps: @@ -106,7 +107,7 @@ jobs: ctest --test-dir build --schedule-random macos-static: - runs-on: macos-14 + runs-on: macos-26 steps: - name: Checkout repo uses: actions/checkout@v6 @@ -145,7 +146,7 @@ jobs: uses: actions/cache@v5 with: path: ${{ fromJSON(steps.test-deps-cache-params.outputs.paths) }} - key: macos-14-${{ steps.test-deps-cache-params.outputs.hash }} + key: macos-26-${{ steps.test-deps-cache-params.outputs.hash }} - name: Fetch test dependency repositories if: steps.test-deps-cache.outputs.cache-hit != 'true' continue-on-error: true diff --git a/test/fetch-test-deps.sh b/test/fetch-test-deps.sh index cc3e0f49..e2718634 100755 --- a/test/fetch-test-deps.sh +++ b/test/fetch-test-deps.sh @@ -58,7 +58,7 @@ case "$actionname" in action() { # _ _ repo _ # libbet depends on PIL to build if [ "$3" = "libbet" ]; then - case "${osname%-*}" in + case "${osname%%-*}" in ubuntu | debian) sudo apt-get install python3-pil ;;