@@ -34,41 +34,28 @@ jobs:
3434 HOMEBREW_NO_AUTO_UPDATE : " 1" # avoid updating taps during install
3535 HOMEBREW_NO_ANALYTICS : " 1"
3636 HOMEBREW_CURL_RETRIES : " 6" # ask curl inside brew to retry
37+ HOMEBREW_NO_INSTALL_CLEANUP : " 1"
3738
3839 steps :
3940 - name : Checkout (with submodules)
4041 uses : actions/checkout@v4
4142 with :
4243 submodules : true
4344
44- - name : Cache Homebrew bottles # downloads (so retries don't redownload)
45- uses : actions/cache@v4
46- with :
47- path : |
48- ~/Library/Caches/Homebrew
49- /Users/runner/Library/Caches/Homebrew
50- key : homebrew-${{ runner.os }}-mac14-cmake-gcc-newlib
51- restore-keys : |
52- homebrew-${{ runner.os }}-
53-
5445 - name : Install toolchain and build tools
5546 run : |
56- # Install with step throttle to hopefully avoid stuck jobs
57-
5847 set -euxo pipefail
5948
60- throttle_delay=5
61- brew update
62-
63- sleep "$throttle_delay"
64- brew install --force-bottle cmake
49+ # Keep Homebrew pinned on the runner; only install what we need.
50+ brew list cmake >/dev/null 2>&1 || brew install --force-bottle cmake
51+ brew list ninja >/dev/null 2>&1 || brew install --force-bottle ninja
6552
66- sleep "$throttle_delay"
67- brew install --force-bottle ninja
53+ # Refresh cask metadata (lightweight) and clear any stale download to avoid checksum mismatches.
54+ rm -f /Users/runner/Library/Caches/Homebrew/downloads/*gcc-arm-embedded*
55+ HOMEBREW_NO_AUTO_UPDATE=0 brew update
6856
69- # Use cask to include headers such as <stdlib.h>
70- sleep "$throttle_delay"
71- brew install --cask gcc-arm-embedded
57+ # Install full ARM GNU toolchain via cask (includes newlib headers/libs).
58+ brew list --cask gcc-arm-embedded >/dev/null 2>&1 || brew install --cask gcc-arm-embedded
7259
7360 - name : Probe ARM GCC (paths + smoke build)
7461 run : |
0 commit comments