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
@@ -151,14 +135,45 @@ aliases:
151
135
sudo apt-get update -y
152
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
153
137
154
- - &install-android-app-dependencies
155
- |
156
- buck fetch ReactAndroid/src/test/java/com/facebook/react/modules
157
- buck fetch ReactAndroid/src/main/java/com/facebook/react
158
- buck fetch ReactAndroid/src/main/java/com/facebook/react/shell
159
- buck fetch ReactAndroid/src/test/...
160
- buck fetch ReactAndroid/src/androidTest/...
161
- ./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
162
177
163
178
defaults : &defaults
164
179
working_directory : ~/react-native
@@ -295,9 +310,12 @@ jobs:
295
310
- restore-cache : *restore-node-cache
296
311
- run : *install-node-dependencies
297
312
- save-cache : *save-node-cache
298
- - restore-cache : *restore-cache-buck-downloads
299
- - run : *install-android-app-dependencies
300
- - 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
301
319
302
320
- run :
303
321
name : Publish React Native Package
@@ -359,63 +377,42 @@ jobs:
359
377
- restore-cache : *restore-cache-ndk
360
378
- run : *install-ndk
361
379
- save-cache : *save-cache-ndk
380
+
362
381
- restore-cache : *restore-cache-buck
363
382
- run : *install-buck
364
383
- save-cache : *save-cache-buck
384
+
365
385
- run : *install-node
386
+
366
387
- restore-cache : *restore-node-cache
367
388
- run : *install-node-dependencies
368
389
- save-cache : *save-node-cache
369
- - restore-cache : *restore-cache-buck-downloads
370
- - run : *install-android-app-dependencies
371
- - save-cache : *save-cache-buck-downloads
372
390
373
- - run :
374
- name : Build Android App
375
- command : |
376
- buck build ReactAndroid/src/main/java/com/facebook/react
377
- buck build ReactAndroid/src/main/java/com/facebook/react/shell
378
-
379
- # Wait for AVD to finish booting before running tests
380
- - run :
381
- name : Wait for Android Virtual Device
382
- command : source scripts/circle-ci-android-setup.sh && waitForAVD
383
-
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
+
384
401
# The JavaScript Bundle is built as part of the build-js-bundle workflow,
385
402
# and is required for instrumentation tests.
386
403
- attach_workspace :
387
404
at : ReactAndroid/src/androidTest/assets/
388
- - run :
389
- name : Check for JavaScript Bundle
390
- command : |
391
- if [[ ! -e ReactAndroid/src/androidTest/assets/AndroidTestBundle.js ]]; then
392
- echo "JavaScript bundle missing, verify build-js-bundle step"; exit 1;
393
- else
394
- echo "JavaScript bundle found.";
395
- fi
396
-
405
+ - run : *check-js-bundle
406
+
407
+ # Wait for AVD to finish booting before running tests
408
+ - run : *wait-for-avd
409
+
397
410
# Tests
398
- - run :
399
- name : Compile Native Libs for Unit and Integration Tests
400
- command : ./gradlew :ReactAndroid:packageReactNdkLibsForBuck -Pjobs=$BUILD_THREADS -Pcom.android.build.threadPoolSize=1
401
- no_output_timeout : 6m
402
- - run :
403
- name : Unit Tests
404
- command : buck test ReactAndroid/src/test/... --config build.threads=$BUILD_THREADS
405
-
406
- # Integration Tests
407
- - run :
408
- name : Build and Install Test APK
409
- 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
410
413
411
414
# post (always runs)
412
- - run :
413
- name : Collect Test Results
414
- command : |
415
- mkdir -p ~/junit/
416
- find . -type f -regex ".*/build/test-results/debug/.*xml" -exec cp {} ~/junit/ \;
417
- find . -type f -regex ".*/outputs/androidTest-results/connected/.*xml" -exec cp {} ~/junit/ \;
418
- when : always
415
+ - run : *collect-android-test-results
419
416
- store_test_results :
420
417
path : ~/junit
421
418
- store_artifacts :
@@ -457,7 +454,8 @@ jobs:
457
454
else
458
455
echo "Skipping code analysis."
459
456
fi
460
-
457
+ when : always
458
+
461
459
# Workflows enables us to run multiple jobs in parallel
462
460
workflows :
463
461
version : 2
0 commit comments