1515 runs-on : ${{ matrix.operating-system }}
1616 strategy :
1717 matrix :
18- operating-system : [ubuntu-22.04, ubuntu-24.04, ubuntu-24.04-arm]
18+ operating-system : [ubuntu-22.04, ubuntu-24.04, ubuntu-24.04-arm, macos-15 ]
1919 steps :
2020 - uses : actions/checkout@v4
2121
2626 run : |
2727 if [[ "${{ runner.os }}-${{ runner.arch }}" == "Linux-ARM64" ]]; then
2828 curl -fOL https://github.com/roc-lang/roc/releases/download/nightly/roc_nightly-linux_arm64-latest.tar.gz
29+ elif [[ "${{ runner.os }}" == "macOS" ]]; then
30+ curl -fOL https://github.com/roc-lang/roc/releases/download/nightly/roc_nightly-macos_apple_silicon-latest.tar.gz
2931 else
3032 curl -fOL https://github.com/roc-lang/roc/releases/download/nightly/roc_nightly-linux_x86_64-latest.tar.gz
3133 fi
@@ -43,19 +45,26 @@ jobs:
4345
4446 - run : ./roc_nightly/roc version
4547
46- - run : |
48+ - name : Install dependencies (Ubuntu)
49+ if : startsWith(matrix.os, 'ubuntu-')
50+ run : |
4751 sudo apt update
48- sudo apt install -y expect ncat valgrind ripgrep
49- # expect for testing
50- # ncat for tcp-client example
51- # ripgrep for ci/check_all_exposed_funs_tested.roc
52+ sudo apt install -y expect ncat ripgrep
53+
54+ - name : Install dependencies (macOS)
55+ if : startsWith(matrix.os, 'macos-')
56+ run : |
57+ brew install expect # expect for testing
58+ brew install nmap # includes ncat, for tcp-client example
59+ brew install ripgrep # ripgrep for ci/check_all_exposed_funs_tested.roc
5260
5361 - run : expect -v
5462
5563 - name : Run all tests
5664 run : ROC=./roc_nightly/roc EXAMPLES_DIR=./examples/ ./ci/all_tests.sh
5765
5866 - name : Install dependencies for musl build
67+ if : startsWith(matrix.os, 'ubuntu-')
5968 run : |
6069 sudo apt-get install -y musl-tools
6170 if [[ "${{ matrix.operating-system }}" == *"-arm" ]]; then
6675 fi
6776
6877 - name : Test building with musl target
78+ if : startsWith(matrix.os, 'ubuntu-')
6979 env :
7080 ROC : ./roc_nightly/roc
7181 run : |
7787 fi
7888
7989 - name : Test using musl build
90+ if : startsWith(matrix.os, 'ubuntu-')
8091 run : |
8192 # TODO remove `if` when above TODOs are done
8293 if [[ "${{ matrix.operating-system }}" != *"-arm" ]]; then
0 commit comments