-
Notifications
You must be signed in to change notification settings - Fork 71
80 lines (80 loc) · 2.58 KB
/
build-ios-llm-example.yml
File metadata and controls
80 lines (80 loc) · 2.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
name: LLM Example app iOS build check
on:
push:
branches:
- main
paths:
- '.github/workflows/build-ios-llm-example.yml'
- '*.podspec'
- 'apps/llm/**'
- 'packages/react-native-executorch/**'
pull_request:
paths:
- '.github/workflows/build-ios-llm-example.yml'
- '*.podspec'
- 'apps/llm/**'
- 'packages/react-native-executorch/**'
workflow_dispatch:
jobs:
build:
if: github.repository == 'software-mansion/react-native-executorch'
runs-on: macos-latest
concurrency:
group: ios-${{ github.ref }}
cancel-in-progress: true
steps:
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: latest-stable
- name: Check out Git repository
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
cache: 'yarn'
- name: Install root dependencies
run: yarn install --immutable
- name: Install Expo CLI
run: |
npm install -g @expo/cli
echo "$(npm prefix -g)/bin" >> $GITHUB_PATH
- name: Cache Expo prebuild
id: expo-prebuild-cache
uses: actions/cache@v4
with:
path: apps/llm/ios
key: ${{ runner.os }}-expo-ios-${{ hashFiles('apps/llm/app.json', 'apps/llm/package.json') }}
- name: Generate native iOS project
working-directory: apps/llm
run: |
if [ "${{ steps.expo-prebuild-cache.outputs.cache-hit }}" != 'true' ]; then
npx expo prebuild --platform ios --no-install
else
echo "Exact cache hit, skipping prebuild"
fi
- name: Download react-native-audio-api prebuilt binaries
working-directory: node_modules/react-native-audio-api
run: |
chmod +x scripts/download-prebuilt-binaries.sh
scripts/download-prebuilt-binaries.sh ios
- name: Install CocoaPods dependencies
working-directory: apps/llm/ios
run: |
pod install
- name: Build app
working-directory: apps/llm/ios
run: |
set -o pipefail && xcodebuild \
-workspace llm.xcworkspace \
-scheme llm \
-sdk iphonesimulator \
-configuration Debug \
-destination 'platform=iOS Simulator,name=iPhone 16 Pro' \
build \
CODE_SIGNING_ALLOWED=NO \
-jobs $(sysctl -n hw.ncpu) \
COMPILER_INDEX_STORE_ENABLE=NO \
ONLY_ACTIVE_ARCH=YES | xcbeautify