Skip to content

Commit 0ac7e79

Browse files
committed
[ ci ] Pin macOS dependencies
- Pin Node.js installation from latest to version 24 for consistency (version 24 is currently the latest) - Pin Chez Scheme installation to specific version 10.3.0 (10.x is required by coming idris-lang#3704) - Add pinned Racket installation via Homebrew cask to run Racket backend tests on macOS
1 parent f2752de commit 0ac7e79

File tree

1 file changed

+43
-6
lines changed

1 file changed

+43
-6
lines changed

.github/workflows/ci-idris2-and-libs.yml

Lines changed: 43 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -178,10 +178,31 @@ jobs:
178178
run: |
179179
brew update
180180
brew install --overwrite python@3.12
181-
brew install node
182-
brew install chezscheme
183-
brew install coreutils
181+
brew install node@24
182+
183+
# Pinning versions at Brew for packages which does not support version selection
184+
# See: https://www.ericbariaux.com/posts/brew_rollback/
185+
brew tap-new idris2-ci-macos/core-local
186+
187+
brew tap homebrew/core --force
188+
brew extract --git-revision=a51847b50de2a3c6d31cb459f5e60e039f775617 chezscheme idris2-ci-macos/core-local
189+
brew install --build-from-source idris2-ci-macos/core-local/chezscheme@10.3.0
190+
191+
brew extract --git-revision=d62ffcbcdcfb84618c994e2cce054b8ab28bef51 coreutils idris2-ci-macos/core-local
192+
brew install idris2-ci-macos/core-local/coreutils@9.9
193+
194+
# For pinning cask need another repository
195+
# See: https://emmer.dev/blog/installing-old-homebrew-cask-versions/
196+
brew tap --force homebrew/cask
197+
# Unfortunately brew extract does not support Casks
198+
mkdir -p "$(brew --repository idris2-ci-macos/core-local)/Casks/r"
199+
pushd "$(brew --repository homebrew/cask)"
200+
git show "d602a9e79bab276995832c476a849a9e6b9105c7:Casks/r/racket.rb" > "$(brew --repository idris2-ci-macos/core-local)/Casks/r/racket.rb"
201+
popd
202+
brew install --cask idris2-ci-macos/core-local/racket
203+
184204
echo "$HOME/.idris2/bin" >> "$GITHUB_PATH"
205+
echo "/opt/homebrew/bin" >> "$GITHUB_PATH"
185206
- name: Make bootstrap folder readonly
186207
run: chmod -R a-w bootstrap
187208
- name: Build Idris 2 from bootstrap
@@ -345,10 +366,26 @@ jobs:
345366
run: |
346367
brew update
347368
brew install --overwrite python@3.12
348-
brew install chezscheme
349-
brew install node
350-
brew install coreutils
369+
brew install node@24
370+
371+
# See notes at "macos-bootstrap-chez"
372+
brew tap homebrew/core --force
373+
brew tap-new idris2-ci-macos/core-local
374+
brew extract --git-revision=a51847b50de2a3c6d31cb459f5e60e039f775617 chezscheme idris2-ci-macos/core-local
375+
brew install --build-from-source idris2-ci-macos/core-local/chezscheme@10.3.0
376+
377+
brew extract --git-revision=d62ffcbcdcfb84618c994e2cce054b8ab28bef51 coreutils idris2-ci-macos/core-local
378+
brew install idris2-ci-macos/core-local/coreutils@9.9
379+
380+
brew tap --force homebrew/cask
381+
mkdir -p "$(brew --repository idris2-ci-macos/core-local)/Casks/r"
382+
pushd "$(brew --repository homebrew/cask)"
383+
git show "d602a9e79bab276995832c476a849a9e6b9105c7:Casks/r/racket.rb" > "$(brew --repository idris2-ci-macos/core-local)/Casks/r/racket.rb"
384+
popd
385+
brew install --cask idris2-ci-macos/core-local/racket
386+
351387
echo "$HOME/.idris2/bin" >> "$GITHUB_PATH"
388+
echo "/opt/homebrew/bin" >> "$GITHUB_PATH"
352389
chmod +x "$HOME/.idris2/bin/idris2" "$HOME/.idris2/bin/idris2_app/"*
353390
- name: Build self-hosted
354391
run: make all IDRIS2_BOOT="idris2 -Werror" && make install

0 commit comments

Comments
 (0)