-
Notifications
You must be signed in to change notification settings - Fork 44
178 lines (145 loc) · 5.57 KB
/
Copy pathci.yml
File metadata and controls
178 lines (145 loc) · 5.57 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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
concurrency:
group: pr-${{ github.event.pull_request.number }}
cancel-in-progress: true
jobs:
build-lint:
name: Build & static code analysis
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
- name: Setup
uses: ./.github/actions/setup
- name: Build packages
run: yarn build
- name: Lint files
run: yarn lint
- name: Typecheck files
run: yarn typecheck
tester-android:
name: Integrated tester Android App
runs-on: ubuntu-latest
env:
TURBO_CACHE_DIR: .turbo/android
steps:
- name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
- name: Setup Node.js
uses: actions/setup-node@65d868f8d4d85d7d4abb7de0875cde3fcc8798f5 # v6
with:
node-version: 'lts/*'
cache: 'yarn'
- name: Install dependencies
run: yarn install
- name: Build packages
run: yarn build
- name: Cache turborepo for Android
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5
with:
path: ${{ env.TURBO_CACHE_DIR }}
key: ${{ runner.os }}-turborepo-android-${{ hashFiles('yarn.lock') }}
restore-keys: |
${{ runner.os }}-turborepo-android-
- name: Check turborepo cache for Android
run: |
TURBO_CACHE_STATUS=$(node -p "($(yarn turbo run build:tester-integrated:android --cache-dir="${{ env.TURBO_CACHE_DIR }}" --dry=json)).tasks.find(t => t.task === 'build:tester-integrated:android').cache.status")
if [[ $TURBO_CACHE_STATUS == "HIT" ]]; then
echo "turbo_cache_hit=1" >> $GITHUB_ENV
fi
- name: Validate Gradle Wrapper
if: env.turbo_cache_hit != 1
uses: gradle/actions/wrapper-validation@6f229686ee4375cc4a86b2514c89bac4930e82c4 # v5
- name: Setup Java
if: env.turbo_cache_hit != 1
uses: actions/setup-java@5d7b2146334bacf88728daaa70414a99f5164e0f # v5
with:
distribution: 'zulu'
java-version: '17'
- name: Restore android build cache
if: env.turbo_cache_hit != 1
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5
with:
path: |
apps/TesterIntegrated/kotlin/build
apps/TesterIntegrated/kotlin/app/.cxx
apps/TesterIntegrated/kotlin/app/build
key: ${{ runner.os }}-tester-android-build-${{ github.sha }}
restore-keys: |
${{ runner.os }}-tester-android-build-
- name: Restore Gradle cache
if: env.turbo_cache_hit != 1
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-tester-integrated-android-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-tester-integrated-android-gradle-
- name: Build integrated Android tester app
env:
JAVA_OPTS: '-XX:MaxHeapSize=6g'
run: |
yarn turbo run build:tester-integrated:android --cache-dir="${{ env.TURBO_CACHE_DIR }}"
tester-ios:
name: Integrated tester iOS App
runs-on: macos-15
env:
TURBO_CACHE_DIR: .turbo/ios
steps:
- name: Checkout
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
- name: Use appropriate Xcode version
uses: maxim-lobanov/setup-xcode@60606e260d2fc5762a71e64e74b2174e8ea3c8bd # v1.6.0
with:
xcode-version: '16'
- name: Setup Node.js
uses: actions/setup-node@65d868f8d4d85d7d4abb7de0875cde3fcc8798f5 # v6
with:
node-version: 'lts/*'
cache: 'yarn'
- name: Setup Ruby
uses: ruby/setup-ruby@5dd816ae0186f20dfa905997a64104db9a8221c7 # v1.280.0
with:
ruby-version: '3.2'
bundler-cache: true
- name: Install dependencies
run: yarn install
- name: Build packages
run: yarn build
- name: Cache turborepo for iOS
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5
with:
path: ${{ env.TURBO_CACHE_DIR }}
key: ${{ runner.os }}-turborepo-ios-${{ hashFiles('yarn.lock') }}
restore-keys: |
${{ runner.os }}-turborepo-ios-
- name: Check turborepo cache for iOS
run: |
TURBO_CACHE_STATUS=$(node -p "($(yarn turbo run build:tester-integrated:ios --cache-dir="${{ env.TURBO_CACHE_DIR }}" --dry=json)).tasks.find(t => t.task === 'build:tester-integrated:ios').cache.status")
if [[ $TURBO_CACHE_STATUS == "HIT" ]]; then
echo "turbo_cache_hit=1" >> $GITHUB_ENV
fi
- name: Restore Pods cache
if: env.turbo_cache_hit != 1
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5
with:
path: |
apps/TesterIntegrated/swift/Pods
key: ${{ runner.os }}-tester-ios-pods-${{ hashFiles('apps/TesterIntegrated/swift/Podfile.lock') }}
restore-keys: |
${{ runner.os }}-tester-ios-pods-
- name: Install pods
if: env.turbo_cache_hit != 1
run: |
cd apps/TesterIntegrated/swift
pod install
- name: Build integrated iOS tester app
run: |
yarn turbo run build:tester-integrated:ios --cache-dir="${{ env.TURBO_CACHE_DIR }}"