mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Fix eslint Fix flow Revert "Improve Flow Types" This reverts commitbee33a4400. [0.50.0-rc.1] Bump version numbers Fix Analyze step Remove mockFs dependency and unblock tests Revert "[0.50.0-rc.1] Bump version numbers" This reverts commit 5d0bc1d29bfdce40bbcc403190b06324557e5a58. Revert "Migrate to Circle 2.0" This reverts commit8fa9984b11. Remove old circle Comment out danger for now
123 lines
5.9 KiB
YAML
123 lines
5.9 KiB
YAML
general:
|
|
branches:
|
|
ignore:
|
|
- gh-pages # list of branches to ignore
|
|
machine:
|
|
node:
|
|
version: 6.2.0
|
|
environment:
|
|
PATH: "~/$CIRCLE_PROJECT_REPONAME/gradle-2.9/bin:/home/ubuntu/buck/bin:$PATH"
|
|
TERM: "dumb"
|
|
ADB_INSTALL_TIMEOUT: 10
|
|
GRADLE_OPTS: '-Dorg.gradle.jvmargs="-Xmx512m -XX:+HeapDumpOnOutOfMemoryError"'
|
|
java:
|
|
version: 'oraclejdk8'
|
|
|
|
dependencies:
|
|
override:
|
|
# BUCK and android
|
|
- if [[ ! -e /home/ubuntu/buck ]]; then git clone https://github.com/facebook/buck.git /home/ubuntu/buck; fi
|
|
- cd /home/ubuntu/buck && ant
|
|
- buck --version
|
|
- source scripts/circle-ci-android-setup.sh && getAndroidSDK
|
|
- 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
|
|
# CIRCLE_NPM_TOKEN is in React Native project settings in Circle CI.
|
|
# It was generated for bestander user, easy to replace with anyone's else
|
|
- echo "//registry.npmjs.org/:_authToken=${CIRCLE_NPM_TOKEN}" > ~/.npmrc
|
|
- npm config set spin=false
|
|
- npm config set progress=false
|
|
- npm install
|
|
# for eslint bot
|
|
- npm install github@0.2.4
|
|
# for website, danger
|
|
- cd website && npm install
|
|
- cd danger && npm install
|
|
cache_directories:
|
|
- "ReactAndroid/build/downloads"
|
|
- "/home/ubuntu/buck"
|
|
- "website/node_modules"
|
|
- "node_modules"
|
|
- "danger/node_modules"
|
|
|
|
test:
|
|
pre:
|
|
# starting emulator in advance because it takes very long to boot
|
|
- $ANDROID_HOME/tools/emulator -avd testAVD -no-skin -no-audio -no-window:
|
|
background: true
|
|
- source scripts/circle-ci-android-setup.sh && waitForAVD
|
|
|
|
override:
|
|
# Run Danger against PRs. This GitHub token grants public_repo access scope. The associated account has no privileged access to the React Native repo. The token must be split in this manner to avoid revocation by GitHub.
|
|
#- cd danger && DANGER_GITHUB_API_TOKEN="e622517d9f1136ea8900""07c6373666312cdfaa69" npm # run danger
|
|
# eslint bot. This GitHub token grants public_repo access scope. The token must be split in this manner to avoid revocation by GitHub.
|
|
- 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
|
|
- npm run lint
|
|
# JS tests for dependencies installed with npm3
|
|
# Commenting out Flow tests
|
|
# - npm run flow -- check
|
|
- npm test -- --maxWorkers=1
|
|
|
|
# build app
|
|
- buck build ReactAndroid/src/main/java/com/facebook/react
|
|
- buck build ReactAndroid/src/main/java/com/facebook/react/shell
|
|
|
|
# compile native libs with Gradle script, we need bridge for unit and
|
|
# integration tests
|
|
- ./gradlew :ReactAndroid:packageReactNdkLibsForBuck -Pjobs=1 -Pcom.android.build.threadPoolSize=1:
|
|
timeout: 360
|
|
|
|
# unit tests
|
|
- buck test ReactAndroid/src/test/... --config build.threads=1
|
|
|
|
# integration tests
|
|
# build JS bundle for instrumentation tests
|
|
- node local-cli/cli.js bundle --max-workers 1 --platform android --dev true --entry-file ReactAndroid/src/androidTest/js/TestBundle.js --bundle-output ReactAndroid/src/androidTest/assets/AndroidTestBundle.js
|
|
|
|
# build test APK
|
|
# Commented out due to test failures. Please uncomment the next line once these have been fixed. See Issue #15726.
|
|
# - buck install ReactAndroid/src/androidTest/buck-runner:instrumentation-tests --config build.threads=1
|
|
|
|
# run installed apk with tests
|
|
# - node ./scripts/run-android-ci-instrumentation-tests.js --retries 3 --path ./ReactAndroid/src/androidTest/java/com/facebook/react/tests --package com.facebook.react.tests
|
|
|
|
# Android e2e test
|
|
# disabled pending on https://our.intern.facebook.com/intern/tasks?t=16912142
|
|
# - source scripts/circle-ci-android-setup.sh && retry3 node ./scripts/run-ci-e2e-tests.js --android --js --retries 2
|
|
|
|
# testing docs generation
|
|
- cd website && npm test
|
|
- cd website && node ./server/generate.js
|
|
# if website can be built, deploy regardless of test failures
|
|
- if [[ ($CIRCLE_BRANCH =~ .*-stable || $CIRCLE_BRANCH == "master") && $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 && cd website && GIT_USER=reactjs-bot npm run gh-pages; fi
|
|
|
|
post:
|
|
# copy test report for Circle CI to display
|
|
- mkdir -p $CIRCLE_TEST_REPORTS/junit/
|
|
- find . -type f -regex ".*/build/test-results/debug/.*xml" -exec cp {} $CIRCLE_TEST_REPORTS/junit/ \;
|
|
- find . -type f -regex ".*/outputs/androidTest-results/connected/.*xml" -exec cp {} $CIRCLE_TEST_REPORTS/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 {} $CIRCLE_TEST_REPORTS/junit/ \;
|
|
|
|
deployment:
|
|
stable:
|
|
branch: [/.*-stable/, /master/]
|
|
owner: facebook
|
|
commands:
|
|
- 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
|
|
# publish to npm
|
|
- node ./scripts/publish-npm.js
|
|
|
|
experimental:
|
|
notify:
|
|
branches:
|
|
only:
|
|
- master
|
|
- /.*-stable/
|