2222 types : [opened, synchronize, reopened]
2323 paths : [
2424 ' .github/workflows/build-apple.yml' ,
25- ' ggml/src/ggml-metal/**'
25+ ' ggml/src/ggml-metal/**' ,
26+ ' ggml/src/ggml-rpc/**'
2627 ]
2728
2829concurrency :
4647 uses : actions/checkout@v6
4748
4849 - name : ccache
49- uses : ggml-org/ccache-action@v1.2.21
50+ uses : ggml-org/ccache-action@v1.2.24
5051 with :
5152 key : apple-arm64
5253 evict-old-files : 1d
@@ -65,14 +66,30 @@ jobs:
6566 -DGGML_RPC=ON \
6667 -DCMAKE_OSX_DEPLOYMENT_TARGET=13.3
6768 time cmake --build build --config Release -j $(sysctl -n hw.logicalcpu)
68- leaks -atExit -- ./build/bin/test-thread-safety -hf ggml-org/gemma-3-270m-qat-GGUF -ngl 99 -p "$(printf 'hello %.0s' {1..128})" -n 16 -c 512 -ub 32 -np 2 -t 2 -lv 1
69+
70+ - name : Check for leaks
71+ run : |
72+ cmd=(./build/bin/test-thread-safety -hf ggml-org/gemma-3-270m-qat-GGUF -ngl 99 -p "$(printf 'hello %.0s' {1..128})" -n 16 -c 512 -ub 32 -np 2 -t 2 -lv 1)
73+ leaks -atExit -- "${cmd[@]}"
74+ # Graphics devices are leaked by Metal in Apple code sometimes, so we ignore those leaks
75+ OBJC_DEBUG_MISSING_POOLS=YES "${cmd[@]}" 2>&1 | awk '{ print } index($0, "autoreleased with no pool in place") && !/class [a-zA-Z0-9]+Device autoreleased/ { found = 1 } END { exit found }'
6976
7077 - name : Test
7178 id : cmake_test
7279 run : |
7380 cd build
7481 ctest -L main -E "test-llama-archs" --verbose --timeout 900
7582
83+ - name : ccache-clear
84+ uses : ./.github/actions/ccache-clear
85+ env :
86+ GH_TOKEN : ${{ github.token }}
87+ with :
88+ key : apple-arm64
89+ older : 5m
90+ min : 1
91+ dry-run : ${{ github.event_name != 'push' || github.ref != 'refs/heads/master' }}
92+
7693 macos-latest-x64 :
7794 runs-on : macos-15-intel
7895
8299 uses : actions/checkout@v6
83100
84101 - name : ccache
85- uses : ggml-org/ccache-action@v1.2.21
102+ uses : ggml-org/ccache-action@v1.2.24
86103 with :
87104 key : apple-x64
88105 evict-old-files : 1d
@@ -109,6 +126,16 @@ jobs:
109126 cd build
110127 ctest -L main --verbose --timeout 900
111128
129+ - name : ccache-clear
130+ uses : ./.github/actions/ccache-clear
131+ env :
132+ GH_TOKEN : ${{ github.token }}
133+ with :
134+ key : apple-x64
135+ older : 5m
136+ min : 1
137+ dry-run : ${{ github.event_name != 'push' || github.ref != 'refs/heads/master' }}
138+
112139 macos-latest-ios-xcode :
113140 runs-on : macos-latest
114141
@@ -163,14 +190,6 @@ jobs:
163190 id : checkout
164191 uses : actions/checkout@v6
165192
166- # TODO: this likely does not do anything - if yes, remove it
167- - name : ccache
168- uses : ggml-org/ccache-action@v1.2.21
169- with :
170- key : apple-tvos
171- evict-old-files : 1d
172- save : ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
173-
174193 - name : Build
175194 id : cmake_build
176195 run : |
@@ -196,14 +215,6 @@ jobs:
196215 id : checkout
197216 uses : actions/checkout@v6
198217
199- # TODO: this likely does not do anything - if yes, remove it
200- - name : ccache
201- uses : ggml-org/ccache-action@v1.2.21
202- with :
203- key : apple-visionos
204- evict-old-files : 1d
205- save : ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
206-
207218 - name : Build
208219 id : cmake_build
209220 run : |
@@ -234,14 +245,6 @@ jobs:
234245 id : checkout
235246 uses : actions/checkout@v6
236247
237- # TODO: this likely does not do anything - if yes, remove it
238- - name : ccache
239- uses : ggml-org/ccache-action@v1.2.21
240- with :
241- key : apple-swift
242- evict-old-files : 1d
243- save : ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
244-
245248 - name : Download xcframework artifact
246249 uses : actions/download-artifact@v7
247250 with :
0 commit comments