Skip to content

Commit 3140116

Browse files
ci: improve homebrew caching
1 parent eea3507 commit 3140116

1 file changed

Lines changed: 31 additions & 0 deletions

File tree

.github/workflows/build-ios-app.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,43 @@ jobs:
4141
cache-targets: true
4242
cache-on-failure: true
4343

44+
- name: Set Homebrew prefix based on architecture
45+
id: brew-prefix
46+
run: |
47+
if [[ $(uname -m) == "arm64" ]]; then
48+
echo "prefix=/opt/homebrew" >> $GITHUB_OUTPUT
49+
else
50+
echo "prefix=/usr/local" >> $GITHUB_OUTPUT
51+
fi
52+
53+
- name: Get Homebrew formula versions
54+
id: brew-versions
55+
run: |
56+
echo "xcodegen=$(brew info --json=v2 xcodegen | jq -r '.formulae[0].versions.stable')" >> $GITHUB_OUTPUT
57+
echo "libimobiledevice=$(brew info --json=v2 libimobiledevice | jq -r '.formulae[0].versions.stable')" >> $GITHUB_OUTPUT
58+
59+
- name: Cache Homebrew packages
60+
id: cache-homebrew
61+
uses: actions/cache@v5
62+
with:
63+
path: |
64+
${{ steps.brew-prefix.outputs.prefix }}/Cellar/{xcodegen,libimobiledevice,libplist,libusbmuxd}
65+
${{ steps.brew-prefix.outputs.prefix }}/opt/{xcodegen,libimobiledevice,libplist,libusbmuxd}
66+
key: ${{ runner.os }}-${{ runner.arch }}-brew-${{ steps.brew-versions.outputs.xcodegen }}-${{ steps.brew-versions.outputs.libimobiledevice }}
67+
restore-keys: |
68+
${{ runner.os }}-${{ runner.arch }}-brew-
69+
4470
- name: Install Tauri iOS dependencies
71+
if: steps.cache-homebrew.outputs.cache-hit != 'true'
4572
run: |
4673
brew install xcodegen libimobiledevice
4774
# Ensure binaries are linked and in PATH for Tauri
4875
brew link --overwrite xcodegen libimobiledevice 2>/dev/null || true
4976
77+
- name: Link cached Homebrew packages
78+
if: steps.cache-homebrew.outputs.cache-hit == 'true'
79+
run: brew link --overwrite xcodegen libimobiledevice 2>/dev/null || true
80+
5081
- name: Install npm dependencies
5182
run: npm ci
5283

0 commit comments

Comments
 (0)