mirror of
https://github.com/status-im/react-native.git
synced 2025-01-09 17:15:54 +00:00
6f1417c849
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
82 lines
3.4 KiB
YAML
82 lines
3.4 KiB
YAML
general:
|
|
branches:
|
|
ignore:
|
|
- gh-pages # list of branches to ignore
|
|
machine:
|
|
node:
|
|
version: 5.1.0
|
|
environment:
|
|
PATH: "~/$CIRCLE_PROJECT_REPONAME/gradle-2.9/bin:$PATH"
|
|
TERM: "dumb"
|
|
ADB_INSTALL_TIMEOUT: 10
|
|
GRADLE_OPTS: '-Dorg.gradle.jvmargs="-Xmx512m -XX:+HeapDumpOnOutOfMemoryError"'
|
|
|
|
dependencies:
|
|
pre:
|
|
# BUCK
|
|
- if [[ ! -e buck ]]; then git clone https://github.com/facebook/buck.git; fi
|
|
- cd buck && ant
|
|
- buck/bin/buck --version
|
|
- buck/bin/buck fetch ReactAndroid/src/test/java/com/facebook/react/modules
|
|
- buck/bin/buck fetch ReactAndroid/src/main/java/com/facebook/react
|
|
- buck/bin/buck fetch ReactAndroid/src/main/java/com/facebook/react/shell
|
|
- buck/bin/buck fetch ReactAndroid/src/test/...
|
|
- buck/bin/buck fetch ReactAndroid/src/androidTest/...
|
|
# using npm@3 because of problems with shrink-wrapped optional deps installs on linux
|
|
- npm install -g npm@3.2
|
|
- source scripts/circle-ci-android-setup.sh && getAndroidSDK
|
|
- ./gradlew :ReactAndroid:downloadBoost :ReactAndroid:downloadDoubleConversion :ReactAndroid:downloadFolly :ReactAndroid:downloadGlog
|
|
- cd website && npm install
|
|
cache_directories:
|
|
- "ReactAndroid/build/downloads"
|
|
- "buck"
|
|
- "buck-out/bin"
|
|
- "website/node_modules"
|
|
override:
|
|
- npm install
|
|
|
|
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
|
|
# assemble done separately because it requires quite a lot of memory and also gives time for emulator to load
|
|
- ./gradlew :ReactAndroid:assembleDebug -PdisablePreDex -Pjobs=1:
|
|
timeout: 360
|
|
- source scripts/circle-ci-android-setup.sh && waitForAVD
|
|
|
|
override:
|
|
# buck tests
|
|
- buck/bin/buck test ReactAndroid/src/test/... --config build.threads=1
|
|
- buck/bin/buck build ReactAndroid/src/main/java/com/facebook/react
|
|
- buck/bin/buck build ReactAndroid/src/main/java/com/facebook/react/shell
|
|
# temp, we can't run instrumentation tests yet
|
|
- buck/bin/buck build ReactAndroid/src/androidTest/java/com/facebook/react/tests
|
|
|
|
# unit tests
|
|
- ./gradlew :ReactAndroid:testDebugUnitTest -PdisablePreDex
|
|
|
|
# build JS bundle for instrumentation tests
|
|
- node local-cli/cli.js bundle --platform android --dev true --entry-file ReactAndroid/src/androidTest/assets/TestBundle.js --bundle-output ReactAndroid/src/androidTest/assets/AndroidTestBundle.js
|
|
# run tests on the emulator
|
|
- ./gradlew :ReactAndroid:connectedAndroidTest -PdisablePreDex --stacktrace --info:
|
|
timeout: 360
|
|
|
|
# testing docs generation is not broken
|
|
- cd website && node ./server/generate.js
|
|
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/ \;
|
|
|
|
deployment:
|
|
website:
|
|
branch: [/.*-stable/, /master/]
|
|
commands:
|
|
# generate docs website
|
|
- git config --global user.email "bestnader@fb.com"
|
|
- git config --global user.name "Website Deployment Script"
|
|
- echo "machine github.com login reactjs-bot password $GITHUB_TOKEN" > ~/.netrc
|
|
- cd website && GIT_USER=bestander npm run gh-pages
|