Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MIT License #16256

Closed
wants to merge 297 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
297 commits
Select commit Hold shift + click to select a range
1f2ca24
Move to fbsystrace to a new location
mzlee Sep 7, 2017
bd72374
Allow Cxx references to be used in native module's method signature
fromcelticpark Sep 7, 2017
1e8f3b1
Update SignedAPKAndroid.md
lwinkyawmyat Sep 7, 2017
f37fc67
Add snapshot tests for sticky headers
sahrens Sep 7, 2017
182874d
Reverting changes to MessageQueue
Sep 7, 2017
30087f9
Comment out Flow tests
hramos Sep 8, 2017
8e0b970
Bump metro-bundler to 0.16.0
rafeca Sep 8, 2017
5e4f286
Use the new Delta HMR implementation from the internal React Native CLI
rafeca Sep 8, 2017
1de6ec4
RN local-cli: fix the reporter creation code
Sep 8, 2017
dcac873
Adding Soundcloud Pulse play store link to showcase
Sep 8, 2017
cb8a116
Use xcpretty for iOS build output if installed
tabrindle Sep 8, 2017
b89d6c8
consistent use of URL for resolving asset source
Sep 8, 2017
c893989
Add check for valid rootTag in ReactRootView
Sep 8, 2017
b7216f3
fix flow warning and typo
zjj010104 Sep 8, 2017
ae60ae4
fix ItemSeparatorComponent position in horizontal and inverted mode
VahidBo Sep 8, 2017
c88b2b2
Log error message when there are zero connected clients
hrp Sep 8, 2017
1afc93d
Fix Animated spring jest test
sahrens Sep 8, 2017
4ca6172
Add support for dynamically sized ReactRootView
mdvacca Sep 9, 2017
73c3aa8
(iOS) Support for DemiBold alias of SemiBold (font-weight 600)
wildseansy Sep 9, 2017
c55fae1
Removed support of nested content inside <Image> on iOS
shergin Sep 11, 2017
023ac57
Default enableBabelRCLookup (recursive) to false
ide Sep 11, 2017
7b77055
Improve RCTCxxBridge invalidation
javache Sep 11, 2017
bae5505
Migrate tests away from "jsdom" environment
Sep 11, 2017
96de23a
Android Oreo (8.0) Support
AndrewJack Sep 11, 2017
393bf88
Add all test routes as server snapshot tests
sahrens Sep 11, 2017
80027ce
ReactRawTextShadowNode does not inherit ReactTextShadowNode anymore
shergin Sep 11, 2017
6114f86
Restructured inheritance around ReactTextViewManager and co.
shergin Sep 11, 2017
d726c2c
support null titles in AlertIOS
11nc Sep 11, 2017
b45c91d
Fix small typo
Almouro Sep 11, 2017
ce0235e
Add missing delete to requestIdleCallback
esprehn Sep 12, 2017
12eb04b
Branding: "packager" -> "Metro Bundler"
cpojer Sep 12, 2017
0c5b390
Fix error in flow types
anta-semenov Sep 12, 2017
274e407
Flow type: saveToCameraRoll returns a string
maartenschumacher Sep 12, 2017
f6a188a
Use Node 8 instead of 7 in Travis CI
ide Sep 12, 2017
915a020
Proper support of the accessibilityLabel for <Text> components on iOS
Sep 12, 2017
3ceb20d
Minor documentation correction for exposing native iOS components
Sep 12, 2017
718f4e6
Remove 'box-only' as a layoutOnlyProp
tomasreimers Sep 12, 2017
1712664
Removing fallback source URL from JS bridge
Sep 12, 2017
cbb0ccb
mActivelyScrolling expected to be true so long as events are being fi…
tomasreimers Sep 13, 2017
fa1b533
Add Example for TouchableOpacity.js
lwinkyawmyat Sep 13, 2017
9731b58
Add missing Contents.json, delete files that shouldn't be in .xcassets
stepanhruda Sep 13, 2017
2259538
Upgrade yargs to 9.0.0
cpojer Sep 13, 2017
a177979
Fixed issue with remeasuring ReactTextShadowNode
shergin Sep 13, 2017
ae1a4f0
Allow data lists to include 0 or '' (falsey items)
tomasreimers Sep 14, 2017
e8c83d1
Access AppState constants on main thread
Sep 14, 2017
e846a9f
Fix build errors exposed by building against clang 5.0
Ktwu Sep 14, 2017
39f83c4
Refactor how symlinks are discovered in local-cli, support scoped mod…
Sep 14, 2017
f568090
Upgrade babel-plugin-react-transform to v3.x
rafeca Sep 14, 2017
adb6646
Make <TextInput multiline> default blurOnSubmit to false.
RSNara Sep 14, 2017
7fab093
Fix crash when trying to load photo library assets with nil image url
terribleben Sep 14, 2017
6c2c2ec
add some RN Core markers
aaronechiu Sep 14, 2017
e9780bd
ReactNative sync (c3718c4...abce30f): the one about the Prepack optim…
Sep 15, 2017
75c94a8
Native view manager event types exposed to JS via view config
Sep 15, 2017
327a0dd
Bump metro-bundler dependency to 0.17
cpojer Sep 15, 2017
2f78d19
Use the Config type from Metro
cpojer Sep 15, 2017
cf2ef84
Move destroy threads in catalystinstance off the UI thread
Sep 15, 2017
d0f36d7
Zero out all fields in YGZeroOutLayoutRecursivly using memset
Sep 15, 2017
2cb87df
Bump react/jsx-no-undef (undefined require) from warning to error
oleolek Sep 15, 2017
11b4084
Added Flow types for React Native host components
Sep 15, 2017
d1372fa
Re-added global event-type Map to UIManager constants
Sep 15, 2017
3ff463f
BREAKING: Removed support of nested content inside <Image> on Android
shergin Sep 18, 2017
7efd4fa
Text to Spannable conversion is now using PRIORITY flag to enforce th…
shergin Sep 18, 2017
df8d0d1
use `uniqBy` for iteratee support
arahansen Sep 18, 2017
7953707
re #15915 HeadlessJsTaskService is expected to run on UI thread
oriharel Sep 18, 2017
6e28179
Refactored executeApplicationScript in RCTCxxBridge
fromcelticpark Sep 18, 2017
6b733a4
Force local builds to use regular JS bundles
pakoito Sep 18, 2017
38c8b6d
Using mutex inside RCTUIManagerObserverCoordinator instead of GCD
shergin Sep 18, 2017
d7f6208
Fixing clowntown in RCTUIManager
shergin Sep 18, 2017
9d9e250
Using `indexOfObjectIdenticalTo` instead of `indexOfObject` in RCTUIM…
shergin Sep 18, 2017
8bf8b21
React sync for revisions abce30f...b5ac963
Sep 18, 2017
d6c519b
Base class for all object private data passed to JSC
Sep 19, 2017
0ee502d
More useful utilities in jschelpers
Sep 19, 2017
e764361
Add getter for JS Executor Factory
johnislarry Sep 19, 2017
9e37352
Backed out D5792012.
Sep 19, 2017
ccddbf8
Fixed runtime error with ProgressBarAndroid
Sep 19, 2017
01bcbd4
Unbreak ReactLegacy project
fromcelticpark Sep 19, 2017
87a1dc4
rename catalyst animations
Sep 19, 2017
5180995
Fix setBackground for Android sdk version 15 and below
mdvacca Sep 19, 2017
4fc9e20
Untangle NativeAnimatedNodesManager from UIManager internals.
Sep 19, 2017
12f123d
add JS->Java Bridge traffic
aaronechiu Sep 19, 2017
a43a988
Document Android native communication
cdlewis Sep 19, 2017
6b11259
Fixed issue with measuring text with NaN width
shergin Sep 19, 2017
e99fbfc
add node/npm version to ISSUE_TEMPLATE.md
tabrindle Sep 19, 2017
c25a3db
Revert faulty change to HelloWorld demo in docs
Sep 19, 2017
ed77dbb
Fixed package.json peerDependencies
Sep 19, 2017
f426a83
Add props for overriding native component
cbrevik Sep 19, 2017
11963d8
Fix Flow errors in ListViewData source.
nmn Sep 19, 2017
3ae45d5
Fix Content-Type header checking of React/RCTJavascriptLoader.mm #15791
justinr1234 Sep 20, 2017
628cbe1
Synchronize all relay packages
leebyron Sep 20, 2017
6334ed2
Detangle destroy and create accesses
Sep 20, 2017
08befb7
Add interface for ReactShadowNode
ayc1 Sep 20, 2017
565a241
add Native Module init
aaronechiu Sep 20, 2017
aa8eb80
Fix shrinking in non strech alignments
woehrl01 Sep 20, 2017
4d54b48
Fix onSubmitEditing dispatch behavior with blurOnSubmit/multiline com…
AdamDanielKing Sep 20, 2017
26133be
Add closed-form damped harmonic oscillator algorithm to Animated.spring
Sep 21, 2017
244045e
Revert D5874862: [yoga][PR] Fix shrinking in non strech alignments
Sep 21, 2017
67d0cc5
Improve formatting of YogaNode.print() on Android
Sep 21, 2017
b9be9a0
Break down PRE_REACT_CONTEXT
alexeylang Sep 21, 2017
da2ea26
Allow "nativeRequire" to accept "bundleId" and "moduleId" values
fromcelticpark Sep 21, 2017
2f952fb
Initial implementation of multiple RAM bundles registry
fromcelticpark Sep 21, 2017
7982191
Configure JSExector with BundleRegistry instead of JSModulesUnbundle.
fromcelticpark Sep 21, 2017
1aeb767
Added iOS support for loading multiple RAM bundles
fromcelticpark Sep 21, 2017
f25233b
Update HeadlessJSAndroid.md explaining parameters
Sep 21, 2017
5317b68
Improved documentation for ActionSheetIOS.js
Sep 21, 2017
70558b9
Add the import statement to examples
nickjuntilla Sep 21, 2017
6ce69dc
Fix RNTester tests
Sep 21, 2017
f01c73d
Silence annoying logs in iOS 11
Sep 21, 2017
8fa9984
Migrate to Circle 2.0
hramos Sep 21, 2017
dd87db3
Add rigdern to the issue task force
rigdern Sep 21, 2017
a389ffb
Add onDismiss to Modal.js
Sep 21, 2017
f7f3473
Add example on Components
lwinkyawmyat Sep 22, 2017
af2e3fe
Improve DX for FBReactKitIntegrationTests
sahrens Sep 22, 2017
526fd6b
Revert D5850970: Added iOS support for loading multiple RAM bundles
Sep 22, 2017
0aa1293
Revert D5850968: Configure JSExector with BundleRegistry instead of J…
Sep 22, 2017
c1058b1
`react-native link` and `react-native unlink` update.
iineva Sep 22, 2017
e9aab0d
Add locking around CatalystInstance.getJavaScriptContext()
cwdick Sep 22, 2017
7d11573
Configure JSExector with BundleRegistry instead of JSModulesUnbundle
fromcelticpark Sep 22, 2017
7d2021e
Added iOS support for loading multiple RAM bundles
fromcelticpark Sep 22, 2017
82b4b9b
Give complex FlatList example more motivation
Sep 22, 2017
49359e8
Deprecate older API uses of `prebuilt_cxx_library`
andrewjcg Sep 22, 2017
9bf936c
Avoid oversending modalDismissed event
Sep 23, 2017
0818f3b
Adding TLSv1 support for custom SSL socket factory
PaulVanStaden Sep 24, 2017
e5d4d49
Create 2017-09-21-react-native-monthly-4.md
grabbou Sep 24, 2017
8b4ed94
Introducting `-[UIManager.setLocalData:forView:]`, the way to provide…
shergin Sep 25, 2017
983b054
Introducing <SafeAreaView>
shergin Sep 25, 2017
7e5d433
SafeAreaViewExample inside RNTester
shergin Sep 25, 2017
8606e04
Enabled pretier (@format) for all files in ReactNative folder
shergin Sep 25, 2017
e10f778
Using SafeAreaView in YellowBox
shergin Sep 25, 2017
eae0241
Adding error message including stacktrace
mdvacca Sep 25, 2017
d005c8c
Fix format warnings for clang 5.0
Sep 25, 2017
e220878
Add a hack to fix the Modal component interacting with LayoutAnimation
Sep 25, 2017
5536252
Revert D5894101: [RN] Using SafeAreaView in YellowBox
shergin Sep 25, 2017
c5d8785
Fix website generation
hramos Sep 25, 2017
3649fce
Revert D5887667: Adding error message including stacktrace
fkgozali Sep 25, 2017
73b596c
Small NaN related optimisation in RCTShadowText
shergin Sep 26, 2017
eeda4f3
Using modern API to get available size in RCTShadowText
shergin Sep 26, 2017
bd70f3a
Remove older devtools hook
leebyron Sep 26, 2017
29e7659
Use const reference in RCTNativeModule::invokeInner
fromcelticpark Sep 26, 2017
b694f96
adding error message including stacktrace and example
mdvacca Sep 26, 2017
3cbc361
Native Animated - Allow events that are dispatched from any thread
janicduplessis Sep 26, 2017
c70ac24
Using SafeAreaView in YellowBox (2nd attempt)
shergin Sep 26, 2017
9796295
Allow applicationId to be specified on build
shockdesign Sep 26, 2017
31904d5
Fix slider colors in Android
martinezguillaume Sep 26, 2017
e6596dc
Move debugger client code to its own folder
rafeca Sep 26, 2017
64ffe45
Use BitmapRegionDecoder to efficiently crop images on Android
faifai21 Sep 26, 2017
6f6329d
Only disallow changes if the value actually changed
Sep 26, 2017
e3a6be5
explicitly show how to add the optional listener
geirman Sep 26, 2017
03ae65b
Fixes removeClipSubviews check for offscreen rendering of ListViews
Sep 26, 2017
292b19d
Update typings for Promise.all() for D5827319
Sep 26, 2017
34487c0
Make the runBeforeMainModule config param to RN repo and make it abso…
rafeca Sep 26, 2017
6d67e2d
Bunch of utility funcs were moved to RCTUIManagerUtils
shergin Sep 26, 2017
43d394c
Updated support for WebStorm
esbenvb Sep 26, 2017
ee8aedd
Make Module.getName() synchronous
rafeca Sep 27, 2017
227a5f4
Default TextInput autoCapitalize to sentences on Android
jamesisaac Sep 27, 2017
5038b06
Un-inline-ing a method declared as export
mnovakovic Sep 27, 2017
888c6e7
Upgrade to 1.7.0
vjeux Sep 27, 2017
70c6700
Codemod to 1.7.0
vjeux Sep 27, 2017
47f6068
Log call stack symbols in case of native module method's failure
fromcelticpark Sep 27, 2017
28525ba
Bump metro-bundler dependency to 0.19.x
rafeca Sep 27, 2017
01a6178
Add missing website dep
hramos Sep 27, 2017
e9a090f
Enabling `flashScrollIndicators` example for all platforms
shergin Sep 27, 2017
672db77
add UI Manager operations
aaronechiu Sep 27, 2017
9b3cc30
Backed out changeset 7c338fe3b747
mdvacca Sep 27, 2017
1af645b
Validate that JS and Native code versions match for RN releases
janicduplessis Sep 28, 2017
e16b514
Add onScrollToIndexFailed support
sahrens Sep 28, 2017
ac6b1d1
Removed unused imports from RCTUIManager
shergin Sep 28, 2017
4119182
Add missing node-notifier npm dependency
ide Sep 28, 2017
235c887
missing parentheses in example code
ivanpdigitalalchemist Sep 28, 2017
652dfd0
add Relay as a category
aaronechiu Sep 28, 2017
c4f7ce9
always pass key parameter to RCTReadFile
fromcelticpark Sep 28, 2017
da30b04
Implement lazy discovery for ViewManagers.
Sep 28, 2017
05cb7ce
Make ios-install-third-party.sh more robust
mhorowitz Sep 28, 2017
089add4
Add @format to MessageQueue
dulinriley Sep 28, 2017
b64e6c7
fix arc drawing when sweep >= 360
nihgwu Sep 29, 2017
d8cc6e3
Add SwipeableFlatList
Sep 29, 2017
3849765
fix params order in comments clamp.js
Sep 29, 2017
ace7273
Add Delta Bundler client to JS remote debugger
rafeca Sep 29, 2017
15130d5
Add Source Map support to e2e deltas in chrome debugger
rafeca Sep 29, 2017
7320ca5
Add GlobalImageLoadListener
foghina Sep 29, 2017
b3fc642
metro-bundler: add fs#writeFileSync to the mock
Sep 29, 2017
a0e88c2
Add gating to the JS delta client on the remote debugger
rafeca Sep 29, 2017
e691699
Don't set defaultProps for default view manager values
javache Sep 29, 2017
4162d73
Added Android support for loading multiple RAM bundles
fromcelticpark Sep 29, 2017
a004e2b
Wrong name
Sep 29, 2017
ebb42ee
Add include_defs("//ReactAndroid/DEFS") to all BUCK files in ReactAnd…
mzlee Sep 29, 2017
d3e1a21
Change all calls to no-console from no-console-disallow
Sep 29, 2017
38ec30b
Fix error appearing when disconnecting HMR client
rafeca Sep 30, 2017
e7af72b
make view hierarchy optimizer smarter
aaronechiu Sep 30, 2017
30044fd
fix overflow hidden
aaronechiu Sep 30, 2017
9cf2b11
Changed React to React Native in README.md
jxshco Sep 30, 2017
cd74e46
Fixed RNTester project file for Apple TV
shergin Oct 2, 2017
9c4ec30
iOS: Support allowFontScaling on TextInput
Oct 2, 2017
a5d1d25
BREAKING: Add interface for ReactShadowNode
mdvacca Oct 2, 2017
53a339a
RN buck: bundleCommand: add test for multiple bundles
Oct 2, 2017
9bbc70c
Re-render views when direction changes
RSNara Oct 2, 2017
abed3cf
Revert D5944488: [RN][iOS]: Re-render views when direction changes
jcarreiro Oct 2, 2017
d0790fe
Introducting `UIManager.setLocalData()`, the way to provide environme…
shergin Oct 2, 2017
c550f27
Intrinsic content size for ReactTextInput (aka autoexpandable <TextIn…
shergin Oct 2, 2017
3e31038
Extend unit test for buildStyleInterpolator
kodafb Oct 3, 2017
915ac20
Avoid eval in buildStyleInterpolator
kodafb Oct 3, 2017
be27f44
Removed a wrong assert.
simonracz Oct 3, 2017
feba4f6
Using RCTExecuteOnUIManagerQueue convinient func in all conseptually …
shergin Oct 3, 2017
9cd095e
Using RCTExecuteOnMainQueue in RCTUIManager
shergin Oct 3, 2017
f368287
reverting D5917111
Oct 3, 2017
a16ef18
Upgrade Flow to v0.56.0
samwgoldman Oct 3, 2017
33f4779
DeviceInfo.isIPhoneX_deprecated: ugly and temporary way to fix your U…
shergin Oct 3, 2017
ddc2210
Add headers prop in source array type prop
phillip055 Oct 3, 2017
6ba9ad8
redo D5917111
aaronechiu Oct 3, 2017
346af55
Fix regression in Java->C++->JS ViewManagers interaction.
Oct 3, 2017
96f23e7
Add a check in InitializeCore.js that PlatformConstants native module…
fromcelticpark Oct 3, 2017
da14fad
Add AppIdentity and DeviceIdentity to Inspector
pakoito Oct 3, 2017
9056314
Add isNetworkInspected to check if a JS VM needs to be paused on launch
pakoito Oct 3, 2017
e7765a3
Fix DeviceIdentity on RN for Android
pakoito Oct 3, 2017
13d8375
fix spelling in ReactInstanceManager
aaronechiu Oct 3, 2017
20ba515
SafeAreaView was added to OSS RNTester project file
shergin Oct 3, 2017
bbcfcdb
bring back box-none as layout only prop
aaronechiu Oct 3, 2017
992ade1
Re-render views when direction changes
RSNara Oct 3, 2017
e1fb6ff
Modernize docs: remove 'use strict' from docs -- es6 has 'use strict'…
indreklasn Oct 4, 2017
cdea3c5
Fixed crash in ReactTextInputLocalData
shergin Oct 4, 2017
26f6f60
Set fishhook's header_dir to "fishhook"
ide Oct 4, 2017
59d9f8c
Fix Android 4.1-4.3 WebView source baseUrl bug
Etheryte Oct 4, 2017
09680f7
Return instancetype for shared RCTI18nUtil instance
fmanns Oct 4, 2017
eae4fe8
Improve YellowBox output format
janicduplessis Oct 4, 2017
ef2e29f
Move URL escaping to Inspector layer
pakoito Oct 4, 2017
d07279c
Remove usage of "this" in a callback in RCTNativeModule
fromcelticpark Oct 4, 2017
7677af1
Litho UIImplementation
ayc1 Oct 4, 2017
678a7f3
React sync for revisions b5ac963...5f93ee6f6
Oct 4, 2017
0c234c9
Add error customizer for React Native Android
axe-fb Oct 4, 2017
d0260b4
Documentation about ABI split in Android Release
SuhairZain Oct 4, 2017
9c29ee1
Standard Flow type for style prop
frantic Oct 4, 2017
2d2dfa2
Correct logo URL
gusgard Oct 4, 2017
bee33a4
Improve Flow Types
nmn Oct 4, 2017
adde2ed
Fix the debug logging regression
alexeylang Oct 4, 2017
9e01d72
Unify supplimentary bundle path creation logic between Android and iOS
fromcelticpark Oct 4, 2017
afec987
Unify sampling profiler and reload logic by leveraging RCTPackagerCon…
fromcelticpark Oct 5, 2017
7f6a7ae
remove RCTWebSocketObserver
fromcelticpark Oct 5, 2017
f8e1386
Fixed crash in [UIManager setLocalData:]
shergin Oct 5, 2017
790eabc
Replace getInt with asInt in native collections
johnislarry Oct 5, 2017
1e3a8e2
Remove AdSupport from React.podspec
javache Oct 5, 2017
e87904c
Redo error handling on iOS
adamjernst Oct 5, 2017
88a79b3
Updating blog post about RTL from setAllowRTL to allowRTL (Android).
Oct 5, 2017
2f2c3ea
Fix navigation links in documentation.
prsevero Oct 6, 2017
1b80118
16111 Webview contentInset docs change
paulbrittain Oct 7, 2017
f66c8f2
Fix minor typo in ScrollView doc
Kerumen Oct 7, 2017
c12681c
Fix warning on SectionList's tutorial
gabrielweyer Oct 7, 2017
4ddc931
Fixing test by updating snapshot for TouchableHighlight
Oct 7, 2017
f9be64a
Use UnimplementedView for CheckBox on iOS
timwangdev Oct 8, 2017
1c24440
Add TimePicker modes
Kerumen Oct 8, 2017
5e25c0e
Introducing PseudoUIManagerQueue
shergin Oct 9, 2017
bf36983
RCTTextInput: Fixed problem with accessory view & 3rd party libs
shergin Oct 9, 2017
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
373 changes: 373 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,373 @@
aliases:
- &restore-cache
keys:
- v1-dependencies-{{ .Branch }}-{{ checksum "package.json" }}
# Fallback in case checksum fails
- v1-dependencies-{{ .Branch }}-
- &save-cache
paths:
- node_modules
key: v1-dependencies-{{ .Branch }}-{{ checksum "package.json" }}

- &restore-cache-website
keys:
- v1-website-dependencies-{{ .Branch }}-{{ checksum "website/package.json" }}
# Fallback in case checksum fails
- v1-website-dependencies-{{ .Branch }}-
- &save-cache-website
paths:
- website/node_modules
key: v1-website-dependencies-{{ .Branch }}-{{ checksum "website/package.json" }}

- &restore-cache-danger
keys:
- v1-danger-dependencies-{{ .Branch }}-{{ checksum "danger/package.json" }}
# Fallback in case checksum fails
- v1-danger-dependencies-{{ .Branch }}-
- &save-cache-danger
paths:
- danger/node_modules
key: v1-danger-dependencies-{{ .Branch }}-{{ checksum "danger/package.json" }}

- &restore-cache-android-packages
keys:
- v1-android-sdkmanager-packages-{{ checksum "scripts/circle-ci-android-setup.sh" }}
# Fallback in case checksum fails
- v1-android-sdkmanager-packages-
- &save-cache-android-packages
paths:
- /opt/android/sdk/system-images/android-23
- /opt/android/sdk/system-images/android-19
- /opt/android/sdk/platforms/android-26
- /opt/android/sdk/platforms/android-23
- /opt/android/sdk/platforms/android-19
- /opt/android/sdk/build-tools/23.0.1
- /opt/android/sdk/add-ons/addon-google_apis-google-23
key: v1-android-sdkmanager-packages-{{ checksum "scripts/circle-ci-android-setup.sh" }}

- &restore-cache-ndk
keys:
- v1-android-ndk-r10e-32-64
- &save-cache-ndk
paths:
- /opt/ndk
key: v1-android-ndk-r10e-32-64

- &restore-cache-buck-downloads
keys:
- v1-buck-downloads-{{ .Branch }}-{{ checksum "ReactAndroid/build.gradle" }}
# Fallback in case checksum fails
- v1-buck-downloads-{{ .Branch }}-
- &save-cache-buck-downloads
paths:
- "ReactAndroid/build/downloads"
key: v1-buck-downloads-{{ .Branch }}-{{ checksum "ReactAndroid/build.gradle" }}

- &restore-cache-buck
keys:
- v1-buck-v2017.09.04.02
- &save-cache-buck
paths:
- ~/buck
key: v1-buck-v2017.09.04.02

- &restore-cache-watchman
keys:
- v1-watchman-v4.9.0
- &save-cache-watchman
paths:
- ~/watchman
key: v1-watchman-v4.9.0

defaults: &defaults
working_directory: ~/react-native

version: 2
jobs:
test-node-8:
<<: *defaults
docker:
- image: circleci/node:8
steps:
- checkout
- run: npm install --no-package-lock
- run: |
npm run lint
npm run flow -- check
npm test -- --maxWorkers=2
# eslint
- run:
name: Analyze Code
command: |
npm install github@0.2.4
cat <(echo eslint; npm run lint --silent -- --format=json; echo flow; npm run flow --silent -- check --json) | GITHUB_TOKEN="af6ef0d15709bc91d""06a6217a5a826a226fb57b7" CI_USER=$CIRCLE_PROJECT_USERNAME CI_REPO=$CIRCLE_PROJECT_REPONAME PULL_REQUEST_NUMBER=$CIRCLE_PR_NUMBER node bots/code-analysis-bot.js

test-node-6:
<<: *defaults
docker:
- image: circleci/node:6.11.0
steps:
- checkout
- run: npm install
- run: |
npm run lint
npm run flow -- check
npm test -- --maxWorkers=2

test-node-4:
<<: *defaults
docker:
- image: circleci/node:4.8.4
steps:
- checkout
- run: npm install
- run: |
npm run lint
npm run flow -- check
npm test -- --maxWorkers=2

test-website:
<<: *defaults
docker:
- image: circleci/node:8
steps:
- checkout
- run:
name: Install Dependencies
command: |
cd website
npm install --no-package-lock
- run:
name: Test Website
command: |
cd website
npm test
- run:
name: Test Build Static Website
command: cd website && node ./server/generate.js

deploy-website:
<<: *defaults
docker:
- image: circleci/node:8
steps:
- checkout
- run:
name: Install Dependencies
command: |
cd website
npm install --no-package-lock
- run:
name: Build and Deploy Static Website
command: |
if [[ $CIRCLE_PROJECT_USERNAME == "facebook" && -z $CI_PULL_REQUEST && -z $CIRCLE_PR_USERNAME ]]; then
git config --global user.email "reactjs-bot@users.noreply.github.com"
git config --global user.name "Website Deployment Script"
echo "machine github.com login reactjs-bot password $GITHUB_TOKEN" > ~/.netrc

echo "Deploying website..."
cd website && GIT_USER=reactjs-bot npm run gh-pages
else
echo "Skipping deploy."
fi

build-js-bundle:
<<: *defaults
docker:
- image: circleci/node:8
steps:
- checkout
- run: npm install --no-package-lock
- run:
name: Build JavaScript Bundle
command: node local-cli/cli.js bundle --max-workers 2 --platform android --dev true --entry-file ReactAndroid/src/androidTest/js/TestBundle.js --bundle-output ReactAndroid/src/androidTest/assets/AndroidTestBundle.js
- persist_to_workspace:
root: ReactAndroid/src/androidTest/assets/
paths:
- AndroidTestBundle.js
- store_artifacts:
path: ReactAndroid/src/androidTest/assets/AndroidTestBundle.js

test-android:
<<: *defaults
docker:
- image: circleci/android:api-26-alpha
environment:
- TERM: "dumb"
- ADB_INSTALL_TIMEOUT: 10
- GRADLE_OPTS: '-Dorg.gradle.jvmargs="-Xmx512m -XX:+HeapDumpOnOutOfMemoryError"'
- ANDROID_NDK: '/opt/ndk/android-ndk-r10e'
- BUILD_THREADS: 2
steps:
- checkout
# CircleCI does not support interpolating env variables in the environment: step above.
# https://circleci.com/docs/2.0/env-vars/#interpolating-environment-variables-to-set-other-environment-variables
- run:
name: Configure PATH
command: |
echo 'export PATH=${ANDROID_NDK}:~/react-native/gradle-2.9/bin:~/buck/bin:$PATH' >> $BASH_ENV
source $BASH_ENV
# Configure dependencies
- run:
name: Install Build Dependencies
command: |
sudo apt-get update -y
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 -y
- restore-cache: *restore-cache-android-packages
- run:
name: Install Android Packages
command: source scripts/circle-ci-android-setup.sh && getAndroidSDK
- save-cache: *save-cache-android-packages
- run:
name: Create Android Virtual Device
command: source scripts/circle-ci-android-setup.sh && createAVD
# Starting emulator in advance as it takes some time to boot.
- run:
name: Launch Android Virtual Device in Background
command: source scripts/circle-ci-android-setup.sh && launchAVD
background: true
# Continue configuring dependencies while AVD boots.
- run:
name: Create Android NDK Directory
command: |
if [[ ! -e /opt/ndk ]]; then
sudo mkdir /opt/ndk
fi
sudo chown ${USER:=$(/usr/bin/id -run)}:$USER /opt/ndk
- restore-cache: *restore-cache-ndk
- run:
name: Install Android NDK
command: source scripts/circle-ci-android-setup.sh && getAndroidNDK
- save-cache: *save-cache-ndk
- restore-cache: *restore-cache-buck
- run:
name: Install Buck
command: |
if [[ ! -e ~/buck ]]; then
git clone https://github.com/facebook/buck.git ~/buck --branch v2017.09.04.02 --depth=1
fi
cd ~/buck && ant
buck --version
- save-cache: *save-cache-buck
- run:
name: Install Node
command: |
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
- run: npm install
# - restore-cache: *restore-cache-watchman
# - run:
# name: Install Watchman Dependencies
# command: |
# sudo apt-get update -y
# sudo apt-get install libtool pkg-config -y
# - run:
# name: Install Watchman
# command: |
# if [[ ! -e ~/watchman ]]; then
# mkdir ~/watchman
# git clone https://github.com/facebook/watchman.git ~/watchman --branch v4.9.0 --depth=1
# cd ~/watchman
# ./autogen.sh
# ./configure
# make
# fi
# cd ~/watchman
# sudo make install
# - save-cache: *save-cache-watchman
- restore-cache: *restore-cache-buck-downloads
- run:
name: Download Android App Dependencies
command: |
buck fetch ReactAndroid/src/test/java/com/facebook/react/modules
buck fetch ReactAndroid/src/main/java/com/facebook/react
buck fetch ReactAndroid/src/main/java/com/facebook/react/shell
buck fetch ReactAndroid/src/test/...
buck fetch ReactAndroid/src/androidTest/...
./gradlew :ReactAndroid:downloadBoost :ReactAndroid:downloadDoubleConversion :ReactAndroid:downloadFolly :ReactAndroid:downloadGlog :ReactAndroid:downloadJSCHeaders
- save-cache: *save-cache-buck-downloads
- run:
name: Build Android App
command: |
buck build ReactAndroid/src/main/java/com/facebook/react
buck build ReactAndroid/src/main/java/com/facebook/react/shell
# Wait for AVD to finish booting before running tests
- run:
name: Wait for Android Virtual Device
command: source scripts/circle-ci-android-setup.sh && waitForAVD
# The JavaScript Bundle is built as part of the build-js-bundle workflow, and is required for instrumentation tests.
- attach_workspace:
at: ReactAndroid/src/androidTest/assets/
- run:
name: Check for JavaScript Bundle
command: |
if [[ ! -e ReactAndroid/src/androidTest/assets/AndroidTestBundle.js ]]; then
echo "JavaScript bundle missing, verify build-js-bundle step"; exit 1;
else
echo "JavaScript bundle found.";
fi
# Tests
- run:
name: Compile Native Libs for Unit and Integration Tests
command: ./gradlew :ReactAndroid:packageReactNdkLibsForBuck -Pjobs=$BUILD_THREADS -Pcom.android.build.threadPoolSize=1
no_output_timeout: 6m
- run:
name: Unit Tests
command: buck test ReactAndroid/src/test/... --config build.threads=$BUILD_THREADS
# Integration Tests
- run:
name: Build and Install Test APK
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
# Failing test is expected
# - run:
# name: Run Installed APK with Tests
# command: node ./scripts/run-android-ci-instrumentation-tests.js --retries 3 --path ./ReactAndroid/src/androidTest/java/com/facebook/react/tests --package com.facebook.react.tests
# Should be disabled pending on https://our.intern.facebook.com/intern/tasks?t=16912142
# - run:
# name: Run Android End to End Tests
# command: source scripts/circle-ci-android-setup.sh && retry3 node ./scripts/run-ci-e2e-tests.js --android --js --retries 2

# post (always runs)
- run:
name: Collect Test Results
command: |
mkdir -p ~/junit/
find . -type f -regex ".*/build/test-results/debug/.*xml" -exec cp {} ~/junit/ \;
find . -type f -regex ".*/outputs/androidTest-results/connected/.*xml" -exec cp {} ~/junit/ \;
# TODO circle does not understand Buck's report, maybe need to transform xml slightly
# find . -type f -regex ".*/buck-out/gen/ReactAndroid/src/test/.*/.*xml" -exec cp {} ~/junit/ \;
when: always
- store_test_results:
path: ~/junit
- store_artifacts:
path: ~/junit

# Workflows enables us to run multiple jobs in parallel
workflows:
version: 2
test_node:
jobs:
- test-node-8
- test-node-6
# Node 4 tests are already failing on Circle 1.0
# - test-node-4
website:
jobs:
- test-website
- deploy-website:
requires:
- test-website
filters:
branches:
only:
- /.*-stable/
- master
test_android:
jobs:
- build-js-bundle:
filters:
branches:
ignore: gh-pages
- test-android:
requires:
- build-js-bundle
2 changes: 1 addition & 1 deletion .eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@
"react/jsx-boolean-value": 0,
"react/jsx-no-comment-textnodes": 1,
"react/jsx-no-duplicate-props": 2,
"react/jsx-no-undef": 1,
"react/jsx-no-undef": 2,
"react/jsx-sort-props": 0,
"react/jsx-uses-react": 1,
"react/jsx-uses-vars": 1,
Expand Down
6 changes: 3 additions & 3 deletions .flowconfig
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,12 @@ suppress_type=$FlowFixMeProps
suppress_type=$FlowFixMeState
suppress_type=$FixMe

suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(5[0-3]\\|[1-4][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native_oss[a-z,_]*\\)?)\\)
suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(5[0-3]\\|[1-4][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native_oss[a-z,_]*\\)?)\\)?:? #[0-9]+
suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(5[0-6]\\|[1-4][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native_oss[a-z,_]*\\)?)\\)
suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(5[0-6]\\|[1-4][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native_oss[a-z,_]*\\)?)\\)?:? #[0-9]+
suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy
suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError

unsafe.enable_getters_and_setters=true

[version]
^0.53.0
^0.56.0
Loading