Skip to content

Commit cfff580

Browse files
Merge branch 'master' into utf8
2 parents 1b18fc9 + 22735f6 commit cfff580

File tree

307 files changed

+6236
-3313
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

307 files changed

+6236
-3313
lines changed

.circleci/config.yml

Lines changed: 103 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,35 @@
11
aliases:
22
- &restore-node-cache
33
keys:
4-
- v1-dependencies-{{ arch }}-{{ .Branch }}-{{ checksum "package.json" }}
4+
- v1-dependencies-{{ arch }}-{{ checksum "package.json" }}
55
# Fallback in case checksum fails
6-
- v1-dependencies-{{ arch }}-{{ .Branch }}-
6+
- v1-dependencies-{{ arch }}-
77

88
- &save-node-cache
99
paths:
1010
- node_modules
11-
key: v1-dependencies-{{ arch }}-{{ .Branch }}-{{ checksum "package.json" }}
11+
key: v1-dependencies-{{ arch }}-{{ checksum "package.json" }}
1212

1313
- &restore-cache-analysis
1414
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" }}
1616
# Fallback in case checksum fails
17-
- v1-analysis-dependencies-{{ arch }}-{{ .Branch }}-
17+
- v1-analysis-dependencies-{{ arch }}-
1818
- &save-cache-analysis
1919
paths:
2020
- danger/node_modules
2121
- 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" }}
2323

2424
- &restore-cache-android-packages
2525
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" }}
2727
# Fallback in case checksum fails
28-
- v1-android-sdkmanager-packages-{{ arch }}-
28+
- v2-android-sdkmanager-packages-{{ arch }}-
2929
- &save-cache-android-packages
3030
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" }}
3933

4034
- &restore-cache-ndk
4135
keys:
@@ -50,23 +44,13 @@ aliases:
5044
- /opt/ndk
5145
key: v1-android-ndk-{{ arch }}-r10e-32-64
5246

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-
6347
- &restore-cache-buck
6448
keys:
65-
- v1-buck-{{ arch }}-v2017.11.16.01
49+
- v2-buck-{{ arch }}-v2017.11.16.01
6650
- &save-cache-buck
6751
paths:
6852
- ~/buck
69-
key: v1-buck-{{ arch }}-v2017.11.16.01
53+
key: v2-buck-{{ arch }}-v2017.11.16.01
7054

7155
- &restore-cache-watchman
7256
keys:
@@ -83,7 +67,7 @@ aliases:
8367
- &install-buck
8468
|
8569
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
8771
fi
8872
cd ~/buck && ant
8973
buck --version
@@ -96,9 +80,16 @@ aliases:
9680
- &run-node-tests
9781
|
9882
npm test -- --maxWorkers=2
83+
84+
- &run-lint-checks
85+
|
9986
npm run lint
87+
88+
- &run-flow-checks
89+
|
10090
npm run flow -- check
10191

92+
10293
- &filter-only-master-stable
10394
branches:
10495
only:
@@ -144,14 +135,45 @@ aliases:
144135
sudo apt-get update -y
145136
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
146137

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
155177

156178
defaults: &defaults
157179
working_directory: ~/react-native
@@ -171,8 +193,8 @@ android_defaults: &android_defaults
171193

172194
version: 2
173195
jobs:
174-
# Runs JavaScript tests on Node 8
175-
test-js-node-8:
196+
# Runs JavaScript lint and flow checks
197+
run-js-checks:
176198
<<: *defaults
177199
docker:
178200
- image: circleci/node:8
@@ -181,25 +203,26 @@ jobs:
181203
- restore-cache: *restore-node-cache
182204
- run: *install-node-dependencies
183205
- save-cache: *save-node-cache
184-
- run: *run-node-tests
206+
- run: *run-lint-checks
207+
- run: *run-flow-checks
185208

186-
# Runs JavaScript tests on Node 6
187-
test-js-node-6:
209+
# Runs JavaScript tests on Node 8
210+
test-js-node-8:
188211
<<: *defaults
189212
docker:
190-
- image: circleci/node:6.11.0
213+
- image: circleci/node:8
191214
steps:
192215
- checkout
193216
- restore-cache: *restore-node-cache
194217
- run: *install-node-dependencies
195218
- save-cache: *save-node-cache
196219
- run: *run-node-tests
197220

198-
# Runs JavaScript tests on Node 4
199-
test-js-node-4:
221+
# Runs JavaScript tests on Node 6
222+
test-js-node-6:
200223
<<: *defaults
201224
docker:
202-
- image: circleci/node:4.8.4
225+
- image: circleci/node:6
203226
steps:
204227
- checkout
205228
- restore-cache: *restore-node-cache
@@ -287,9 +310,12 @@ jobs:
287310
- restore-cache: *restore-node-cache
288311
- run: *install-node-dependencies
289312
- 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
293319

294320
- run:
295321
name: Publish React Native Package
@@ -351,63 +377,42 @@ jobs:
351377
- restore-cache: *restore-cache-ndk
352378
- run: *install-ndk
353379
- save-cache: *save-cache-ndk
380+
354381
- restore-cache: *restore-cache-buck
355382
- run: *install-buck
356383
- save-cache: *save-cache-buck
384+
357385
- run: *install-node
386+
358387
- restore-cache: *restore-node-cache
359388
- run: *install-node-dependencies
360389
- 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
364390

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+
376401
# The JavaScript Bundle is built as part of the build-js-bundle workflow,
377402
# and is required for instrumentation tests.
378403
- attach_workspace:
379404
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+
389410
# 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
402413

403414
# 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
411416
- store_test_results:
412417
path: ~/junit
413418
- store_artifacts:
@@ -449,15 +454,20 @@ jobs:
449454
else
450455
echo "Skipping code analysis."
451456
fi
452-
457+
when: always
458+
453459
# Workflows enables us to run multiple jobs in parallel
454460
workflows:
455461
version: 2
456462

457463
build:
458464
jobs:
459465

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
461471
- test-js-node-8:
462472
filters: *filter-ignore-gh-pages
463473
- test-js-node-6:

0 commit comments

Comments
 (0)