@@ -10,8 +10,35 @@ concurrency:
1010
1111jobs :
1212
13+ security :
14+ runs-on : ubuntu-latest
15+ name : Security & Dependency Review
16+ steps :
17+ - name : Checkout the code
18+ uses : actions/checkout@v4
19+
20+ - name : Dependency Review
21+ uses : actions/dependency-review-action@v4
22+ if : github.event_name == 'pull_request'
23+ with :
24+ fail-on-severity : moderate
25+
26+ - name : Setup node
27+ uses : actions/setup-node@v4
28+ with :
29+ node-version : ' 20'
30+
31+ - name : Install dependencies
32+ run : npm install
33+
34+ - name : Run npm audit
35+ run : npm audit --audit-level=moderate
36+ continue-on-error : true
37+
1338 install-dep :
1439 runs-on : macos-latest
40+ env :
41+ NO_FLIPPER : ' 1'
1542 name : Install dependencies
1643 steps :
1744 - name : Checkout the code
2653 !*.MD
2754 !*.yml
2855
29- - uses : actions/cache@v3
56+ - uses : actions/cache@v4
3057 name : Cache node_modules
3158 id : cache-node-modules
3259 if : steps.verify-dev-changed-files.outputs.any_changed == 'true'
@@ -35,19 +62,21 @@ jobs:
3562 node_modules
3663 example/node_modules
3764 key : ${{ runner.os }}-nodeModules-${{ hashFiles('package.json') }}-${{ hashFiles('example/package.json') }}
65+ restore-keys : |
66+ ${{ runner.os }}-nodeModules-
3867
3968 - name : Set up Ruby
4069 if : steps.verify-dev-changed-files.outputs.any_changed == 'true'
4170 uses : ruby/setup-ruby@v1
4271 with :
43- ruby-version : 2.7
72+ ruby-version : ' 3.2 '
4473 bundler-cache : true
4574
4675 - name : Setup node
4776 if : steps.verify-dev-changed-files.outputs.any_changed == 'true'
48- uses : actions/setup-node@v3
77+ uses : actions/setup-node@v4
4978 with :
50- node-version : ' 18 '
79+ node-version : ' 20 '
5180
5281 - name : Install npm dependencies
5382 if : steps.cache-node-modules.outputs.cache-hit != 'true' && steps.verify-dev-changed-files.outputs.any_changed == 'true'
@@ -80,18 +109,19 @@ jobs:
80109 !example/ios/**
81110 example/e2e/**
82111
83- - uses : actions/cache@v3
112+ - uses : actions/cache@v4
84113 name : Cache node_modules
85114 if : steps.verify-android-changed-files.outputs.any_changed == 'true'
86115 id : cache-node-modules
87116 with :
88117 path : |
89118 node_modules
90119 example/node_modules
91- fail-on-cache-miss : true
92120 key : ${{ runner.os }}-nodeModules-${{ hashFiles('package.json') }}-${{ hashFiles('example/package.json') }}
121+ restore-keys : |
122+ ${{ runner.os }}-nodeModules-
93123
94- - uses : actions/cache@v3
124+ - uses : actions/cache@v4
95125 id : cache-gradle
96126 name : Cache Gradle dependencies
97127 if : steps.verify-android-changed-files.outputs.any_changed == 'true'
@@ -100,22 +130,17 @@ jobs:
100130 ~/.gradle/caches
101131 ~/.gradle/wrapper
102132 key : ${{ runner.os }}-gradle-${{ hashFiles('example/android/gradle/wrapper/gradle-wrapper.properties') }}-${{ hashFiles('android/src/**/*.kt') }}
103-
104- - name : Set up Ruby
105- uses : ruby/setup-ruby@v1
106- if : steps.verify-android-changed-files.outputs.any_changed == 'true'
107- with :
108- ruby-version : 2.7
109- bundler-cache : true
133+ restore-keys : |
134+ ${{ runner.os }}-gradle-
110135
111136 - name : Setup node
112- uses : actions/setup-node@v3
137+ uses : actions/setup-node@v4
113138 if : steps.verify-android-changed-files.outputs.any_changed == 'true'
114139 with :
115- node-version : ' 18 '
140+ node-version : ' 20 '
116141
117142 - name : Set up JDK
118- uses : actions/setup-java@v3
143+ uses : actions/setup-java@v4
119144 if : steps.verify-android-changed-files.outputs.any_changed == 'true'
120145 with :
121146 distribution : ' zulu'
@@ -149,7 +174,7 @@ jobs:
149174 path : ${{ github.workspace }}/example/android/app-release-${{ github.sha }}.apk
150175
151176 android-api-level-test :
152- runs-on : macos-latest
177+ runs-on : macos-13
153178 needs : android-build
154179 name : Android Test
155180 strategy :
@@ -172,43 +197,38 @@ jobs:
172197 !example/ios/**
173198 example/e2e/**
174199
175- - uses : actions/cache@v3
200+ - uses : actions/cache@v4
176201 name : Cache node_modules
177202 if : steps.verify-android-changed-files.outputs.any_changed == 'true'
178203 id : cache-node-modules
179204 with :
180205 path : |
181206 node_modules
182207 example/node_modules
183- fail-on-cache-miss : true
184208 key : ${{ runner.os }}-nodeModules-${{ hashFiles('package.json') }}-${{ hashFiles('example/package.json') }}
209+ restore-keys : |
210+ ${{ runner.os }}-nodeModules-
185211
186- - uses : actions/cache@v3
212+ - uses : actions/cache@v4
187213 name : Cache Gradle dependencies
188214 if : steps.verify-android-changed-files.outputs.any_changed == 'true'
189215 id : cache-gradle
190216 with :
191217 path : |
192218 ~/.gradle/caches
193219 ~/.gradle/wrapper
194- fail-on-cache-miss : true
195220 key : ${{ runner.os }}-gradle-${{ hashFiles('example/android/gradle/wrapper/gradle-wrapper.properties') }}-${{ hashFiles('android/src/**/*.kt') }}
196-
197- - name : Set up Ruby
198- uses : ruby/setup-ruby@v1
199- if : steps.verify-android-changed-files.outputs.any_changed == 'true'
200- with :
201- ruby-version : 2.7
202- bundler-cache : true
221+ restore-keys : |
222+ ${{ runner.os }}-gradle-
203223
204224 - name : Setup node
205- uses : actions/setup-node@v3
225+ uses : actions/setup-node@v4
206226 if : steps.verify-android-changed-files.outputs.any_changed == 'true'
207227 with :
208- node-version : ' 18 '
228+ node-version : ' 20 '
209229
210230 - name : Set up JDK
211- uses : actions/setup-java@v3
231+ uses : actions/setup-java@v4
212232 if : steps.verify-android-changed-files.outputs.any_changed == 'true'
213233 with :
214234 distribution : ' zulu'
@@ -220,7 +240,7 @@ jobs:
220240 with :
221241 api-level : ${{ matrix.api-level }}
222242 target : ${{ matrix.target }}
223- arch : arm64-v8a
243+ arch : x86_64
224244 profile : pixel_5
225245 script : |
226246 cd example/android && ./gradlew connectedCheck --stacktrace
@@ -234,11 +254,13 @@ jobs:
234254
235255 ios-build-test :
236256 runs-on : macos-latest
257+ env :
258+ NO_FLIPPER : ' 1'
237259 needs : install-dep
238260 name : iOS Build and Test
239261 strategy :
240262 matrix :
241- cocoapods : ['1.10.1 ', '1.14.3 ']
263+ cocoapods : ['1.14.3 ', '1.15.0 ']
242264 steps :
243265 - name : Checkout the code
244266 uses : actions/checkout@v4
@@ -255,7 +277,7 @@ jobs:
255277 !example/android/**
256278 example/e2e/**
257279
258- - uses : actions/cache@v3
280+ - uses : actions/cache@v4
259281 name : Cache node_modules
260282 id : cache-node-modules
261283 if : steps.verify-iOS-changed-files.outputs.any_changed == 'true'
@@ -264,21 +286,25 @@ jobs:
264286 node_modules
265287 example/node_modules
266288 key : ${{ runner.os }}-nodeModules-${{ hashFiles('package.json') }}-${{ hashFiles('example/package.json') }}
267- fail-on-cache-miss : true
289+ restore-keys : |
290+ ${{ runner.os }}-nodeModules-
268291
269292 - name : Cache Pods
270293 id : cache-pods
271- uses : actions/cache@v3
294+ uses : actions/cache@v4
272295 if : steps.verify-iOS-changed-files.outputs.any_changed == 'true'
273296 with :
274297 path : example/ios/Pods
275298 key : ${{ runner.os }}-pods-${{ matrix.cocoapods }}-${{ hashFiles('**/Podfile.lock') }}
299+ restore-keys : |
300+ ${{ runner.os }}-pods-${{ matrix.cocoapods }}-
301+ ${{ runner.os }}-pods-
276302
277303 - name : Set up Ruby
278304 uses : ruby/setup-ruby@v1
279305 if : steps.verify-iOS-changed-files.outputs.any_changed == 'true'
280306 with :
281- ruby-version : 2.7
307+ ruby-version : ' 3.2 '
282308 bundler-cache : true
283309
284310 - name : Install Cocoapods
@@ -287,9 +313,9 @@ jobs:
287313
288314 - name : Setup node
289315 if : steps.verify-iOS-changed-files.outputs.any_changed == 'true'
290- uses : actions/setup-node@v3
316+ uses : actions/setup-node@v4
291317 with :
292- node-version : ' 18 '
318+ node-version : ' 20 '
293319
294320 - name : Install Pods
295321 if : steps.cache-pods.outputs.cache-hit != 'true' && steps.verify-iOS-changed-files.outputs.any_changed == 'true'
@@ -306,21 +332,21 @@ jobs:
306332 if : steps.verify-iOS-changed-files.outputs.any_changed == 'true'
307333 run : |
308334 cd example/ios
309- xcodebuild -workspace ImageMarkerExample.xcworkspace -scheme ImageMarkerExample -configuration Release -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 12 ' | xcpretty
335+ xcodebuild -workspace ImageMarkerExample.xcworkspace -scheme ImageMarkerExample -configuration Release -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 16 ' | xcpretty
310336
311337 - name : Test
312338 if : steps.verify-iOS-changed-files.outputs.any_changed == 'true'
313339 run : |
314340 cd example/ios
315- xcodebuild -workspace ImageMarkerExample.xcworkspace -scheme ImageMarkerExample -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 12 ' test | xcpretty
341+ xcodebuild -workspace ImageMarkerExample.xcworkspace -scheme ImageMarkerExample -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 16 ' test | xcpretty
316342
317343 ci-complete :
318344 name : Complete CI
319- needs : [android-build, android-api-level-test, ios-build-test]
345+ needs : [security, android-build, android-api-level-test, ios-build-test]
320346 if : ${{ always() }}
321347 runs-on : ubuntu-latest
322348 steps :
323349 - name : Check all job status
324350 if : >-
325- ${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') || contains(needs.*.result, 'skipped') }}
351+ ${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') }}
326352 run : exit 1
0 commit comments