1
1
aliases :
2
2
- &restore-node-cache
3
3
keys :
4
- - v1-dependencies-{{ arch }}-{{ .Branch }}-{{ checksum "package.json" }}
4
+ - v1-dependencies-{{ arch }}-{{ checksum "package.json" }}
5
5
# Fallback in case checksum fails
6
- - v1-dependencies-{{ arch }}-{{ .Branch }}-
6
+ - v1-dependencies-{{ arch }}-
7
7
8
8
- &save-node-cache
9
9
paths :
10
10
- node_modules
11
- key : v1-dependencies-{{ arch }}-{{ .Branch }}-{{ checksum "package.json" }}
11
+ key : v1-dependencies-{{ arch }}-{{ checksum "package.json" }}
12
12
13
13
- &restore-cache-analysis
14
14
keys :
15
- - v1-analysis-dependencies-{{ arch }}-{{ .Branch }}-{{ checksum "package.json" }}{{ checksum "danger/package.json" }}
15
+ - v1-analysis-dependencies-{{ arch }}-{{ checksum "package.json" }}{{ checksum "danger/package.json" }}
16
16
# Fallback in case checksum fails
17
- - v1-analysis-dependencies-{{ arch }}-{{ .Branch }}-
17
+ - v1-analysis-dependencies-{{ arch }}-
18
18
- &save-cache-analysis
19
19
paths :
20
20
- danger/node_modules
21
21
- node_modules
22
- key : v1-analysis-dependencies-{{ arch }}-{{ .Branch }}-{{ checksum "package.json" }}{{ checksum "danger/package.json" }}
22
+ key : v1-analysis-dependencies-{{ arch }}-{{ checksum "package.json" }}{{ checksum "danger/package.json" }}
23
23
24
24
- &restore-cache-android-packages
25
25
keys :
26
- - v1 -android-sdkmanager-packages-{{ arch }}-{{ checksum "scripts/circle-ci-android-setup.sh" }}
26
+ - v2 -android-sdkmanager-packages-{{ arch }}-{{ checksum "scripts/circle-ci-android-setup.sh" }}
27
27
# Fallback in case checksum fails
28
- - v1 -android-sdkmanager-packages-{{ arch }}-
28
+ - v2 -android-sdkmanager-packages-{{ arch }}-
29
29
- &save-cache-android-packages
30
30
paths :
31
- - /opt/android/sdk/system-images/android-23
32
- - /opt/android/sdk/system-images/android-19
33
- - /opt/android/sdk/platforms/android-26
34
- - /opt/android/sdk/platforms/android-23
35
- - /opt/android/sdk/platforms/android-19
36
- - /opt/android/sdk/build-tools/23.0.1
37
- - /opt/android/sdk/add-ons/addon-google_apis-google-23
38
- key : v1-android-sdkmanager-packages-{{ arch }}-{{ checksum "scripts/circle-ci-android-setup.sh" }}
31
+ - /opt/android/sdk
32
+ key : v2-android-sdkmanager-packages-{{ arch }}-{{ checksum "scripts/circle-ci-android-setup.sh" }}
39
33
40
34
- &restore-cache-ndk
41
35
keys :
@@ -50,23 +44,13 @@ aliases:
50
44
- /opt/ndk
51
45
key : v1-android-ndk-{{ arch }}-r10e-32-64
52
46
53
- - &restore-cache-buck-downloads
54
- keys :
55
- - v1-buck-downloads-{{ arch }}-{{ .Branch }}-{{ checksum "ReactAndroid/build.gradle" }}
56
- # Fallback in case checksum fails
57
- - v1-buck-downloads-{{ arch }}-{{ .Branch }}-
58
- - &save-cache-buck-downloads
59
- paths :
60
- - " ReactAndroid/build/downloads"
61
- key : v1-buck-downloads-{{ arch }}-{{ .Branch }}-{{ checksum "ReactAndroid/build.gradle" }}
62
-
63
47
- &restore-cache-buck
64
48
keys :
65
- - v1 -buck-{{ arch }}-v2017.11.16.01
49
+ - v2 -buck-{{ arch }}-v2017.11.16.01
66
50
- &save-cache-buck
67
51
paths :
68
52
- ~/buck
69
- key : v1 -buck-{{ arch }}-v2017.11.16.01
53
+ key : v2 -buck-{{ arch }}-v2017.11.16.01
70
54
71
55
- &restore-cache-watchman
72
56
keys :
@@ -83,7 +67,7 @@ aliases:
83
67
- &install-buck
84
68
|
85
69
if [[ ! -e ~/buck ]]; then
86
- git clone https://github.com/facebook/buck.git ~/buck --branch v2017.09.04.02 --depth=1
70
+ git clone https://github.com/facebook/buck.git ~/buck --branch v2017.11.16.01 --depth=1
87
71
fi
88
72
cd ~/buck && ant
89
73
buck --version
@@ -96,9 +80,16 @@ aliases:
96
80
- &run-node-tests
97
81
|
98
82
npm test -- --maxWorkers=2
83
+
84
+ - &run-lint-checks
85
+ |
99
86
npm run lint
87
+
88
+ - &run-flow-checks
89
+ |
100
90
npm run flow -- check
101
91
92
+
102
93
- &filter-only-master-stable
103
94
branches :
104
95
only :
@@ -144,14 +135,45 @@ aliases:
144
135
sudo apt-get update -y
145
136
sudo apt-get install ant autoconf automake g++ gcc libqt5widgets5 lib32z1 lib32stdc++6 make maven python-dev python3-dev qml-module-qtquick-controls qtdeclarative5-dev file -y
146
137
147
- - &install-android-app-dependencies
148
- |
149
- buck fetch ReactAndroid/src/test/java/com/facebook/react/modules
150
- buck fetch ReactAndroid/src/main/java/com/facebook/react
151
- buck fetch ReactAndroid/src/main/java/com/facebook/react/shell
152
- buck fetch ReactAndroid/src/test/...
153
- buck fetch ReactAndroid/src/androidTest/...
154
- ./gradlew :ReactAndroid:downloadBoost :ReactAndroid:downloadDoubleConversion :ReactAndroid:downloadFolly :ReactAndroid:downloadGlog :ReactAndroid:downloadJSCHeaders
138
+ - &build-android-app
139
+ name : Build Android App
140
+ command : |
141
+ buck build ReactAndroid/src/main/java/com/facebook/react
142
+ buck build ReactAndroid/src/main/java/com/facebook/react/shell
143
+
144
+ - &wait-for-avd
145
+ name : Wait for Android Virtual Device
146
+ command : source scripts/circle-ci-android-setup.sh && waitForAVD
147
+
148
+ - &check-js-bundle
149
+ name : Check for JavaScript Bundle
150
+ command : |
151
+ if [[ ! -e ReactAndroid/src/androidTest/assets/AndroidTestBundle.js ]]; then
152
+ echo "JavaScript bundle missing, verify build-js-bundle step"; exit 1;
153
+ else
154
+ echo "JavaScript bundle found.";
155
+ fi
156
+
157
+ - &compile-native-libs
158
+ name : Compile Native Libs for Unit and Integration Tests
159
+ command : ./gradlew :ReactAndroid:packageReactNdkLibsForBuck -Pjobs=$BUILD_THREADS -Pcom.android.build.threadPoolSize=1
160
+ no_output_timeout : 6m
161
+
162
+ - &run-android-unit-tests
163
+ name : Unit Tests
164
+ command : buck test ReactAndroid/src/test/... --config build.threads=$BUILD_THREADS
165
+
166
+ - &run-android-integration-tests
167
+ name : Build and Install Test APK
168
+ command : source scripts/circle-ci-android-setup.sh && NO_BUCKD=1 retry3 buck install ReactAndroid/src/androidTest/buck-runner:instrumentation-tests --config build.threads=$BUILD_THREADS
169
+
170
+ - &collect-android-test-results
171
+ name : Collect Test Results
172
+ command : |
173
+ mkdir -p ~/junit/
174
+ find . -type f -regex ".*/build/test-results/debug/.*xml" -exec cp {} ~/junit/ \;
175
+ find . -type f -regex ".*/outputs/androidTest-results/connected/.*xml" -exec cp {} ~/junit/ \;
176
+ when : always
155
177
156
178
defaults : &defaults
157
179
working_directory : ~/react-native
@@ -171,8 +193,8 @@ android_defaults: &android_defaults
171
193
172
194
version : 2
173
195
jobs :
174
- # Runs JavaScript tests on Node 8
175
- test -js-node-8 :
196
+ # Runs JavaScript lint and flow checks
197
+ run -js-checks :
176
198
<< : *defaults
177
199
docker :
178
200
- image : circleci/node:8
@@ -181,25 +203,26 @@ jobs:
181
203
- restore-cache : *restore-node-cache
182
204
- run : *install-node-dependencies
183
205
- save-cache : *save-node-cache
184
- - run : *run-node-tests
206
+ - run : *run-lint-checks
207
+ - run : *run-flow-checks
185
208
186
- # Runs JavaScript tests on Node 6
187
- test-js-node-6 :
209
+ # Runs JavaScript tests on Node 8
210
+ test-js-node-8 :
188
211
<< : *defaults
189
212
docker :
190
- - image : circleci/node:6.11.0
213
+ - image : circleci/node:8
191
214
steps :
192
215
- checkout
193
216
- restore-cache : *restore-node-cache
194
217
- run : *install-node-dependencies
195
218
- save-cache : *save-node-cache
196
219
- run : *run-node-tests
197
220
198
- # Runs JavaScript tests on Node 4
199
- test-js-node-4 :
221
+ # Runs JavaScript tests on Node 6
222
+ test-js-node-6 :
200
223
<< : *defaults
201
224
docker :
202
- - image : circleci/node:4.8.4
225
+ - image : circleci/node:6
203
226
steps :
204
227
- checkout
205
228
- restore-cache : *restore-node-cache
@@ -287,9 +310,12 @@ jobs:
287
310
- restore-cache : *restore-node-cache
288
311
- run : *install-node-dependencies
289
312
- save-cache : *save-node-cache
290
- - restore-cache : *restore-cache-buck-downloads
291
- - run : *install-android-app-dependencies
292
- - save-cache : *save-cache-buck-downloads
313
+ - run : buck fetch ReactAndroid/src/test/java/com/facebook/react/modules
314
+ - run : buck fetch ReactAndroid/src/main/java/com/facebook/react
315
+ - run : buck fetch ReactAndroid/src/main/java/com/facebook/react/shell
316
+ - run : buck fetch ReactAndroid/src/test/...
317
+ - run : buck fetch ReactAndroid/src/androidTest/...
318
+ - run : ./gradlew :ReactAndroid:downloadBoost :ReactAndroid:downloadDoubleConversion :ReactAndroid:downloadFolly :ReactAndroid:downloadGlog :ReactAndroid:downloadJSCHeaders
293
319
294
320
- run :
295
321
name : Publish React Native Package
@@ -351,63 +377,42 @@ jobs:
351
377
- restore-cache : *restore-cache-ndk
352
378
- run : *install-ndk
353
379
- save-cache : *save-cache-ndk
380
+
354
381
- restore-cache : *restore-cache-buck
355
382
- run : *install-buck
356
383
- save-cache : *save-cache-buck
384
+
357
385
- run : *install-node
386
+
358
387
- restore-cache : *restore-node-cache
359
388
- run : *install-node-dependencies
360
389
- save-cache : *save-node-cache
361
- - restore-cache : *restore-cache-buck-downloads
362
- - run : *install-android-app-dependencies
363
- - save-cache : *save-cache-buck-downloads
364
390
365
- - run :
366
- name : Build Android App
367
- command : |
368
- buck build ReactAndroid/src/main/java/com/facebook/react
369
- buck build ReactAndroid/src/main/java/com/facebook/react/shell
370
-
371
- # Wait for AVD to finish booting before running tests
372
- - run :
373
- name : Wait for Android Virtual Device
374
- command : source scripts/circle-ci-android-setup.sh && waitForAVD
375
-
391
+ - run : buck fetch ReactAndroid/src/test/java/com/facebook/react/modules
392
+ - run : buck fetch ReactAndroid/src/main/java/com/facebook/react
393
+ - run : buck fetch ReactAndroid/src/main/java/com/facebook/react/shell
394
+ - run : buck fetch ReactAndroid/src/test/...
395
+ - run : buck fetch ReactAndroid/src/androidTest/...
396
+ - run : ./gradlew :ReactAndroid:downloadBoost :ReactAndroid:downloadDoubleConversion :ReactAndroid:downloadFolly :ReactAndroid:downloadGlog :ReactAndroid:downloadJSCHeaders
397
+
398
+ - run : *build-android-app
399
+ - run : *compile-native-libs
400
+
376
401
# The JavaScript Bundle is built as part of the build-js-bundle workflow,
377
402
# and is required for instrumentation tests.
378
403
- attach_workspace :
379
404
at : ReactAndroid/src/androidTest/assets/
380
- - run :
381
- name : Check for JavaScript Bundle
382
- command : |
383
- if [[ ! -e ReactAndroid/src/androidTest/assets/AndroidTestBundle.js ]]; then
384
- echo "JavaScript bundle missing, verify build-js-bundle step"; exit 1;
385
- else
386
- echo "JavaScript bundle found.";
387
- fi
388
-
405
+ - run : *check-js-bundle
406
+
407
+ # Wait for AVD to finish booting before running tests
408
+ - run : *wait-for-avd
409
+
389
410
# Tests
390
- - run :
391
- name : Compile Native Libs for Unit and Integration Tests
392
- command : ./gradlew :ReactAndroid:packageReactNdkLibsForBuck -Pjobs=$BUILD_THREADS -Pcom.android.build.threadPoolSize=1
393
- no_output_timeout : 6m
394
- - run :
395
- name : Unit Tests
396
- command : buck test ReactAndroid/src/test/... --config build.threads=$BUILD_THREADS
397
-
398
- # Integration Tests
399
- - run :
400
- name : Build and Install Test APK
401
- command : source scripts/circle-ci-android-setup.sh && NO_BUCKD=1 retry3 buck install ReactAndroid/src/androidTest/buck-runner:instrumentation-tests --config build.threads=$BUILD_THREADS
411
+ - run : *run-android-unit-tests
412
+ - run : *run-android-integration-tests
402
413
403
414
# post (always runs)
404
- - run :
405
- name : Collect Test Results
406
- command : |
407
- mkdir -p ~/junit/
408
- find . -type f -regex ".*/build/test-results/debug/.*xml" -exec cp {} ~/junit/ \;
409
- find . -type f -regex ".*/outputs/androidTest-results/connected/.*xml" -exec cp {} ~/junit/ \;
410
- when : always
415
+ - run : *collect-android-test-results
411
416
- store_test_results :
412
417
path : ~/junit
413
418
- store_artifacts :
@@ -449,15 +454,20 @@ jobs:
449
454
else
450
455
echo "Skipping code analysis."
451
456
fi
452
-
457
+ when : always
458
+
453
459
# Workflows enables us to run multiple jobs in parallel
454
460
workflows :
455
461
version : 2
456
462
457
463
build :
458
464
jobs :
459
465
460
- # Test Javascript on Node 8 and 6
466
+ # Run lint and flow checks
467
+ - run-js-checks :
468
+ filters : *filter-ignore-gh-pages
469
+
470
+ # Test JavaScript on Node 8 and 6
461
471
- test-js-node-8 :
462
472
filters : *filter-ignore-gh-pages
463
473
- test-js-node-6 :
0 commit comments