Commit Graph

44 Commits

Author SHA1 Message Date
Kevin Lacker 0b27d2e22f reenable circle e2e tests
Summary:
We turned them off on Wednesday Dec 14 when both CIs were busted. Once Circle runs on this PR it'll demonstrate they are functional again.
Closes https://github.com/facebook/react-native/pull/11547

Differential Revision: D4364177

Pulled By: hramos

fbshipit-source-id: 8a3b24a2795d0fcf4255cb3174acedc10ff6fbe7
2016-12-22 15:28:32 -08:00
Konstantin Raev 0579efea8c Switched to npm hosted boost lib
Summary:
Boost is officially hosted on SourceForge which has ab SSL problem that Gradle complains about and also it is sometimes unavailable.
I switched to using npm hosted (yarnpkg mirrored for performance) boost lib exactly the same as from Source Forge.

Other alternatives considered:
- CDN e.g. mirror.nienbo.com started responding with 4XX code when requested by Gradle
- File sharing like DropBox are not for mass anonymous downloads
- Github is not good for binary files and is throttled for anonymous raw file downloads
- S3 or similar. Requires amazon account for maintenance and does not expose semver API and other nice features that npm has

In the future I'd like to try Yarn as dependency management tool for bridge builds, this could be the first step.

**Test plan (required)**

- Circle (testing with caches cleaned)
- `./gradlew ReactAndroid:packageReactNdkLibsForBuck` (check twice to make sure caches work)
- `REACT_NATIVE_BOOST_PATH=./bridge-dependencies/node_modules/boost-react-native-bundle ./
Closes https://github.com/facebook/react-native/pull/11469

Differential Revision: D4339446

Pulled By: mkonicek

fbshipit-source-id: ccc9196e9b675c16a235a318c4861aaa4e263d6e
2016-12-16 06:43:33 -08:00
Kevin Lacker 133d410ee6 attempt to fix tests
Summary:
This PR attempts to fix the iOS tests by fixing a flag in the e2e tests, and "fix" the Android tests by commenting out the e2e test. I propose that if these fix the tests, we accept them, and then follow up attempting to fix the Android e2e tests for real afterwards.
Closes https://github.com/facebook/react-native/pull/11466

Differential Revision: D4328304

Pulled By: mkonicek

fbshipit-source-id: 3c497921ea0359bed633c7bd390495046634c123
2016-12-14 12:13:41 -08:00
Ovidiu Viorel Iepure 8576865252 Remove Gradle testing from CI suite
Summary: Remove Gradle testing from CI suite

Reviewed By: bestander, astreet

Differential Revision: D4213478

fbshipit-source-id: 2397aced9540ed9f478e55fdf0097cedc9af4805
2016-11-21 09:43:32 -08:00
Konstantin Raev 7e8bef872a limited max workers in packager to 1 to stop crashes in Ci…
Summary:
This should stop Circle CI from crashing.

Let's wait for the test to pass.

cc davidaurelio matryoshcow mkonicek
Closes https://github.com/facebook/react-native/pull/10962

Differential Revision: D4186949

Pulled By: kentaromiura

fbshipit-source-id: 2542376a6e4bf0d7dc423c574bd4573ae9bdfc96
2016-11-15 18:58:37 -08:00
kentaromiura 5d15ed0285 Force CircleCI to use JDK 8
Summary:
Circle CI is failing sometimes on the `buck && ant` task with a `Require JDK 8 or higher` error.

**Test plan (required)**
Make sure tests pass on Circle CI.
Closes https://github.com/facebook/react-native/pull/10390

Differential Revision: D4021546

Pulled By: bestander

fbshipit-source-id: 355657936bf90e70a10df418b378ad07978c0e5e
2016-10-14 08:13:55 -07:00
Kevin Lacker 857bae4ea3 Replace the deprecated esprima-fb parser with flow-parser, on the RN website
Summary:
(I changed a ton from when I previously submitted this PR so please take another look if you already did.)

PROBLEM: the no-longer-maintained `esprima-fb` parser does not support class properties, leading our website docgen to die if we use class properties, which we're gonna do real soon now
SOLUTION: use `flow-parser` instead, which the flow team is maintaining including all the fancy-pants ES? stuff that FB uses internally.

This removes the `esprima-fb` parser from jsdocs and replaces it with `flow-parser`. It's almost the same, I checked by diffing all the parser json output and it only had a few irrelevant differences. I had to add a file of constants so that we could remove esprima-fb altogether, too.

This also adds a couple unit tests, so that we can test that jsDocs works programmatically. They don't run if you run the regular RN tests, you have to run `npm test` from the `/website/` subdirectory.
Closes https://github.com/facebook/react-native/pull/9890

Differential Revision: D3865629

Pulled By: bestander

fbshipit-source-id: 8f561b78ca4a02f3f7b45e55904ec2fa911e3bb6
2016-09-14 14:28:44 -07:00
Konstantin Raev c58a7aa546 Improved android e2e tests stability
Summary:
Some tweaks to make CircleCI pass
Closes https://github.com/facebook/react-native/pull/8425

Differential Revision: D3485087

Pulled By: bestander

fbshipit-source-id: b1941ecedbcaf81f0bcb34a10686f21f2ded3114
2016-06-24 16:58:28 -07:00
Konstantin Raev f58c53e3ee Cicle CI fix: limit predex threads
Summary:
Limited nubmer of threads Gradle may spawn when generating dex files
Closes https://github.com/facebook/react-native/pull/8279

Differential Revision: D3463716

fbshipit-source-id: 6f1ee35c077649d94fe879cf9327383971321307
2016-06-21 10:28:29 -07:00
Konstantin Raev 343ad3be79 Fixed CircleCi script to make gradle builds more stable
Summary:
This is a temporary patch because gradle builds are not properly cached
Closes https://github.com/facebook/react-native/pull/8274

Differential Revision: D3462705

fbshipit-source-id: 1873904873dec36a42405b9cf37def521552ee8b
2016-06-21 02:58:27 -07:00
Konstantin Raev 6210db8ffa Fixed Circle: limit Gradle threads
Summary: Closes https://github.com/facebook/react-native/pull/8103

Differential Revision: D3430328

fbshipit-source-id: 0e683ae1cdc6b4c0cd1e2f426f838b749341dca5
2016-06-14 03:58:26 -07:00
Konstantin Raev 9172597019 Returned flow checks to CI
Summary: Closes https://github.com/facebook/react-native/pull/7894

Differential Revision: D3379513

fbshipit-source-id: 49290b3582ae66ea99d19ec3f490bdb4436536dd
2016-06-02 10:58:36 -07:00
Konstantin Raev 7ca8e0e8b1 Stabilized TestIdTestApp integration test
Summary:
- TestIdTestModule instrumentation tests is responsible for too many occasional crashes, e.g. https://circleci.com/gh/facebook/react-native/7054.
This should fix the problem (will monitor over next week)

- Made file naming more consistent

- 5 retries don't make e2e tests more stable, reduced back to 3 but I need to investigate how to make it more reliable
Closes https://github.com/facebook/react-native/pull/7784

Differential Revision: D3354444

fbshipit-source-id: d058362edbec09522a4828998e01988a82a74487
2016-05-26 13:43:29 -07:00
James Ide 69bf0bd8c1 Run CircleCI tests on the latest version of Node
Summary:
Travis CI runs Node 4 (LTS), so make CircleCI run Node `<latest>` which is Node 6.
Closes https://github.com/facebook/react-native/pull/7542

Differential Revision: D3334397

fbshipit-source-id: 15a758011626fca4efdc4c1b36891a4d73c52e94
2016-05-23 05:13:29 -07:00
Konstantin Raev 6a34c9c3da Disabled flow in e2e test because it causes memory crashes
Summary: Closes https://github.com/facebook/react-native/pull/7620

Differential Revision: D3322029

fbshipit-source-id: e0406770d011956af6b47d15c5b49a68b1b611f5
2016-05-19 03:58:25 -07:00
Konstantin Raev 588183b166 Increased timeouts and retries for instrumentation tests
Summary:
Tests fail quite often but retries seem to help.
Closes https://github.com/facebook/react-native/pull/7537

Differential Revision: D3295833

fbshipit-source-id: e74be5d62b7fb9c1859477e51bf18fe3d1d25ce4
2016-05-12 17:43:35 -07:00
Konstantin Raev 110d1587ae Added stability to OSS instrumentation tests
Summary:
This change makes all instrumentation tests to be executed in sequence in independent retriable processes.

With a new test being open sourced recently our CI stability degraded.
This PR should bring back stability because tests won't affect each other and will have shorter lifetime
Closes https://github.com/facebook/react-native/pull/7353

Differential Revision: D3259081

fb-gh-sync-id: 48ccdb5dbd561d416526497ff474378db9ca3c60
fbshipit-source-id: 48ccdb5dbd561d416526497ff474378db9ca3c60
2016-05-04 10:59:33 -07:00
Konstantin Raev f99786cc89 Made SandCastle run the same Instrumentation Tests that are open sourced and are running on CI
Reviewed By: mkonicek

Differential Revision: D3229774

fb-gh-sync-id: 48239e8898eb011ad767bf102aa65025351363c6
fbshipit-source-id: 48239e8898eb011ad767bf102aa65025351363c6
2016-04-29 05:11:59 -07:00
Konstantin Raev a8d2079022 Optimise e2e tests retries
Summary:Implemented smarter retries for e2e tests

E2e tests consist of two expensive and flaky steps: npm installation and tests execution.
Our CI is configured to retry a command 3 times before terminating the test.
In current setup if one of the steps fail the whole test is restarted.

This change adds ad-hoc ability to retry flaky bits of e2e script independently.
This will make tests fail faster when code gets broken while increasing the chances to succeed in case of random false errors.
Closes https://github.com/facebook/react-native/pull/7184

Differential Revision: D3218927

fb-gh-sync-id: 9be8343484bb28aa3601b651db70fc55aa840e61
fbshipit-source-id: 9be8343484bb28aa3601b651db70fc55aa840e61
2016-04-25 07:16:20 -07:00
Konstantin Raev a31e87b3f2 temporarily disable broken OSS CI tests to save CI capacity
Summary:Fix progress tracking via t10955118
Closes https://github.com/facebook/react-native/pull/7162

Differential Revision: D3216683

fb-gh-sync-id: 100de7a245bb7e7de741d96f3f0a7d4871b97311
fbshipit-source-id: 100de7a245bb7e7de741d96f3f0a7d4871b97311
2016-04-23 02:01:19 -07:00
Konstantin Raev f9bd789206 E2e android
Summary:- converted shell script `scripts/e2e-test.sh` into JS script to have more programming flexibility
- using appium execute 2 tests after a fresh React Native app installation: check HMR and that debugging mode does not crash the app
- made sure tests can be stable on limited CI systems and added ways to debug any problems in the future

Using appium we can now interact with Android app and test its state.
As a follow up i am planning to write a blog post on how to use appium with android and ios for e2e testing.
Closes https://github.com/facebook/react-native/pull/6840

Differential Revision: D3173635

Pulled By: mkonicek

fb-gh-sync-id: 3cf044bc9f64d1a842ae4589dd1bcab76de3d66a
fbshipit-source-id: 3cf044bc9f64d1a842ae4589dd1bcab76de3d66a
2016-04-13 08:20:05 -07:00
Konstantin Raev b7e6444ba2 Configured git on CircleCI to use a not personal email
Summary:cc ide
Closes https://github.com/facebook/react-native/pull/6835

Differential Revision: D3144587

fb-gh-sync-id: 844c4f69523cbeacc0a5915280d870c54efc4ff3
fbshipit-source-id: 844c4f69523cbeacc0a5915280d870c54efc4ff3
2016-04-08 03:41:17 -07:00
Konstantin Raev 5387e09dc7 Fixed e2e test being run twice on Circle
Summary: Closes https://github.com/facebook/react-native/pull/6768

Differential Revision: D3132093

fb-gh-sync-id: 9ff9208b4549ee56c4bcf5531699857056940fc9
fbshipit-source-id: 9ff9208b4549ee56c4bcf5531699857056940fc9
2016-04-03 10:08:19 -07:00
Konstantin Raev ce1261a3dd Added BUCK to generated app with react-native-cli init
Summary:BUCK is faster than Gradle.
For example `gradle app:installDebug` vs `buck install app` is ~7 seconds vs ~2 seconds with warm caches.
This is just the beginning to allow people to become familiar with BUCK.
It is enough for running the app locally and testing on a device.

Gradle is still used for dependency resolution.
Closes https://github.com/facebook/react-native/pull/6733

Differential Revision: D3126328

Pulled By: bestander

fb-gh-sync-id: 56aad276036c029af7e0e23d60c46ba2f77b3d2c
fbshipit-source-id: 56aad276036c029af7e0e23d60c46ba2f77b3d2c
2016-04-01 08:54:19 -07:00
Konstantin Raev 993835c815 Allow react-native init <version> + removed sinopia from being required for e2e testing
Reviewed By: mkonicek, frantic

Differential Revision: D3087524

fb-gh-sync-id: 048e23b55916a6be17fa9fabb6e41b0b2f3f7a16
shipit-source-id: 048e23b55916a6be17fa9fabb6e41b0b2f3f7a16
2016-03-24 05:31:23 -07:00
Konstantin Raev 84183ffc30 Improved OSS flow and lint reporting
Summary:- lint bot is now managed by Circle CI
- checked that flow and lint errors are caught both by bot and CI
- flow fix for npm 3
- Travis is now using npm 2 and Circle CI npm 3
- Refactored Travis script to be able to be able to fail on multiple lines
Closes https://github.com/facebook/react-native/pull/6508

Differential Revision: D3069500

Pulled By: davidaurelio

fb-gh-sync-id: 02772bf1eae5f2c44489c2e3a01899428a9640cb
shipit-source-id: 02772bf1eae5f2c44489c2e3a01899428a9640cb
2016-03-18 08:10:26 -07:00
Konstantin Raev ceb6bd5272 Npm publish
Summary:This work allows automated release deployment.

Previous semi-automation lived in release.sh and I split it into two pieces:
- test-manual-e2e.sh - that just tests that current commit is buildable and makes a quick e2e installation for manual testing
- publish-npm.js - that makes publish based on what current branch and tags are on commit that is tested/deployed by CI

This simplified `Releases.md` guide and requires you to just run
```
git checkout -b 0.22-stable
git tag v0.22.0-rc
git push origin 0.22-stable --tags
```
to have a successful npm release.
Closes https://github.com/facebook/react-native/pull/6453

Reviewed By: mkonicek

Differential Revision: D3047938

Pulled By: bestander

fb-gh-sync-id: dbebf4c3a0bc2c2a0ef75c54595ab5654f91b8ea
shipit-source-id: dbebf4c3a0bc2c2a0ef75c54595ab5654f91b8ea
2016-03-15 09:22:26 -07:00
Konstantin Raev 83095f95b5 Fixed CI stability: running android tests via emulator not graddle:co…
Summary:Running CI tests with emulator, not a graddle wrapper.
This should make things faster
Closes https://github.com/facebook/react-native/pull/6421

Differential Revision: D3042505

fb-gh-sync-id: 455264f90044c22ed3ec8cf9cb6d5edc2efedcdb
shipit-source-id: 455264f90044c22ed3ec8cf9cb6d5edc2efedcdb
2016-03-11 13:33:26 -08:00
Martin Konicek 8d52567754 Run an e2e packager test on CircleCI
Summary:Motivation: Catch packager breakages (such as bad shrinkwrap, package.json) quickly and reliably. This is also done as part of the e2e test on Travis. Having an isolated packager test as well makes it easier to see there's a problem with the packager, running in on CircleCI helps detect issues even if the Travis e2e test gets ever broken (have some redundancy, these breakages are pretty painful to fix so we want to detect them as reliably as possible).

**Test plan (required)**

Ran this locally:

    git checkout master
    ./scripts/e2e-test.sh --packager  # The packager created the bundle, exit code was 0
    # Made the packager fail on bad JS
    ./scripts/e2e-test.sh --packager  # Exit code was 1
Closes https://github.com/facebook/react-native/pull/6294

Differential Revision: D3011910

fb-gh-sync-id: 20e8eb29f6aeb3a494a7ef1dbf9cb08fa4e18e27
shipit-source-id: 20e8eb29f6aeb3a494a7ef1dbf9cb08fa4e18e27
2016-03-04 09:24:06 -08:00
Konstantin Raev 854c5ddf16 Simplified Travis configuration
Summary:Merged Travis js tests into one test run.

This should simplify test runs, reduce chances of external infra failures and make CI reports more focused.

**Test plan (required)**

See how travis runs it.
Need to double check that APPETIZE_TOKEN and S3_TOKEN aren't used.
Closes https://github.com/facebook/react-native/pull/6172

Differential Revision: D3001437

fb-gh-sync-id: 203e18ce0706d4ab1ab55cfe016beed3e3558dcc
shipit-source-id: 203e18ce0706d4ab1ab55cfe016beed3e3558dcc
2016-03-02 15:25:32 -08:00
Konstantin Raev f827f7b79a instrumentation tests are executed with BUCK
Summary:Added ability to run instrumentation tests with BUCK.

This change uses BUCK to build and run instrumentation tests facebook style.
The gains are that we can execute the same tests internally at FB and in OSS.
Also running tests not via graddle:connect command is 1.5 minutes faster.

I'll keep keep an eye on stability Gradle and BUCK builds for a while.
Closes https://github.com/facebook/react-native/pull/6176

Differential Revision: D2999878

Pulled By: bestander

fb-gh-sync-id: d715ba231769e57100685a1256f2e530c589921c
shipit-source-id: d715ba231769e57100685a1256f2e530c589921c
2016-03-02 06:55:35 -08:00
Konstantin Raev ecb1643fee Yet another fix for CI to find branch that contaisn tag latest
Reviewed By: svcscm

Differential Revision: D2937802

fb-gh-sync-id: 3bd617d5fc7fea42d264acfbd229fd15b335a95d
shipit-source-id: 3bd617d5fc7fea42d264acfbd229fd15b335a95d
2016-02-15 13:08:31 -08:00
Konstantin Raev 7d7508e25b Fixed a wrong github user used for deployment of gh-pages
Reviewed By: mkonicek

Differential Revision: D2927075

fb-gh-sync-id: b3a7d1541d11d7d9ebf01f72dac48847750968f8
shipit-source-id: b3a7d1541d11d7d9ebf01f72dac48847750968f8
2016-02-11 08:09:35 -08:00
Konstantin Raev 6f1417c849 CI now builds docs website and deploys it to /%version% path
Summary:
Copy of #5760 reverted merge.

We need to preserve history of docs changes on the webserver.
The goal is to allow users to browse outdated versions of docs.
To make things simple all websites will be released to https://facebook.github.io/react-native/releases/version/XX folder when there is a branch cut.

I switched from Travis CI to Cirle CI because it works faster and I am more familiar with it.

How it works:

1. If code is pushed to `master` branch then CI will build a fresh version of docs and put it in https://github.com/facebook/react-native/tree/gh-pages/releases/next folder.
Github will serve this website from https://facebook.github.io/react-native/releases/version/next URL.
All relative URLs will work within that website

2. If code is pushed to `0.20-stable` branch then CI will build a fresh version of docs and put it in https://github.com/facebook/react-native/tree/gh-pages/releases/0.20 folder.
Github will serve this website from https://facebook.github.io/react-native/releases/v
Closes https://github.com/facebook/react-native/pull/5873

Reviewed By: svcscm

Differential Revision: D2926901

Pulled By: androidtrunkagent

fb-gh-sync-id: 16aea430bac815933d9c603f03921cc6353906f1
shipit-source-id: 16aea430bac815933d9c603f03921cc6353906f1
2016-02-11 06:17:42 -08:00
Konstantin Raev bf21002f2a Circle CI stopped working with Gradle properly https://circleci.com/g
Summary:
…h/facebook/react-native/2393, this is a fix
Closes https://github.com/facebook/react-native/pull/5857

Reviewed By: svcscm

Differential Revision: D2923274

Pulled By: androidtrunkagent

fb-gh-sync-id: 0f76958fde4639eca0b3f59b85a1443adf8c48d1
shipit-source-id: 0f76958fde4639eca0b3f59b85a1443adf8c48d1
2016-02-10 13:52:30 -08:00
Konstantin Raev 3e0631af7f limiting BUCK's memory for CI
Summary: Closes https://github.com/facebook/react-native/pull/5666

Reviewed By: svcscm

Differential Revision: D2885968

Pulled By: androidtrunkagent

fb-gh-sync-id: 59614f89c18f8db96210e5c93f599055575330fa
2016-02-01 10:49:33 -08:00
Konstantin Raev 21a4c6e853 quick fix circle buck builds
Summary: Closes https://github.com/facebook/react-native/pull/5582

Reviewed By: svcscm

Differential Revision: D2869861

Pulled By: androidtrunkagent

fb-gh-sync-id: 5b004521e11d0e55c237183e69f8251732c6bd14
2016-01-27 08:52:36 -08:00
Konstantin Raev 83fd314e37 Moving more unit tests to open source
Reviewed By: foghina, mkonicek

Differential Revision: D2865561

fb-gh-sync-id: 7aab67d205b94d657a6ec7bf81a4ecee644eabc2
2016-01-27 07:28:23 -08:00
Konstantin Raev 0331c02c8f added buck to circle.ci build infra
Summary: Closes https://github.com/facebook/react-native/pull/5333

Reviewed By: svcscm

Differential Revision: D2858779

Pulled By: androidtrunkagent

fb-gh-sync-id: 2458f6324384378ea9f6dd67dc170d42e418aa24
2016-01-23 10:50:35 -08:00
Konstantin Raev 3507bc61a5 added branch to ignore for CI tests
Summary:
every push to gh-pages renders an error in tests https://circleci.com/gh/facebook/react-native/995?utm_campaign=build-failed&utm_medium=email&utm_source=notification
Closes https://github.com/facebook/react-native/pull/5109

Reviewed By: svcscm

Differential Revision: D2802873

Pulled By: androidtrunkagent

fb-gh-sync-id: 8043f47ccfce322ae26ac5e85604bcc2c79d9cb4
2016-01-05 03:45:28 -08:00
Konstantin Raev 88baaa1239 increased stability of circleCI e2e tests
Summary:
Out of 57 builds in the 5 days during Christmas only 15 were successful.
15 of the failed ones were caused by `com.android.ddmlib.ShellCommandUnresponsiveException` when running unstrumentation tests.
Another 10 were because of crashes probably related to memory usage.

This PR follows ideas from https://github.com/Originate/guide/blob/master/android/guide/Continuous%20Integration.md

So far I've made 6 successful builds with this setup.
Need to run it for a few more days to get accurate stats.
Closes https://github.com/facebook/react-native/pull/5021

Reviewed By: svcscm

Differential Revision: D2795713

Pulled By: androidtrunkagent

fb-gh-sync-id: 33373fed7ca7c5fb83b35cf551f8501286e33d7b
2015-12-30 11:39:32 -08:00
Konstantin Raev 308612314e added emulator support to circle.ci
Summary: Closes https://github.com/facebook/react-native/pull/4911

Reviewed By: svcscm

Differential Revision: D2789142

Pulled By: androidtrunkagent

fb-gh-sync-id: 9fd9520c27fc9acb7b139de6843a71ca3f918249
2015-12-24 10:40:28 -08:00
Konstantin Raev a99c5160ee Android Instrumentations tests are ready to be run in github/CI open source environment
Reviewed By: mkonicek

Differential Revision: D2769217

fb-gh-sync-id: 7469af816241d8b642753cca21f6542b971e9572
2015-12-21 09:39:57 -08:00
Konstantin Raev c71811e491 Added Circle CI integration to run Android unit tests
Summary:
A few caveats before accepting:
- Do I need to squash commits?
- Need to set up new Circle CI account connected to FB react-native repo
- After that replace tokens and links to the new ones

Setting up Integration tests should be straight forward next week https://circleci.com/docs/android
Closes https://github.com/facebook/react-native/pull/4566

Reviewed By: svcscm

Differential Revision: D2723119

Pulled By: androidtrunkagent

fb-gh-sync-id: 2c4a46b206f15f36d94d1b10ff9e339f5182782b
2015-12-04 08:10:28 -08:00