@@ -34,41 +34,25 @@ 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
65-
66- sleep "$throttle_delay"
67- brew install --force-bottle ninja
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
6852
69- # Use cask to include headers such as <stdlib.h>
70- sleep "$throttle_delay"
71- brew install --cask gcc- arm-embedded
53+ # Install ARM GNU Toolchain via Homebrew bottles (includes headers/libs via newlib).
54+ brew install --force-bottle arm-none-eabi-gcc
55+ brew install --force-bottle arm-none-eabi-newlib
7256
7357 - name : Probe ARM GCC (paths + smoke build)
7458 run : |
0 commit comments