93 lines
3.0 KiB
YAML
93 lines
3.0 KiB
YAML
version: 2
|
|
executorType: docker
|
|
jobs:
|
|
build-app:
|
|
resource_class: medium
|
|
environment:
|
|
- GRADLE_OPTS: '-Dorg.gradle.daemon=false -Dorg.gradle.jvmargs="-Xmx3072m -XX:+HeapDumpOnOutOfMemoryError"'
|
|
- REACT_NATIVE_MAX_WORKERS: 2
|
|
- ANDROID_BUILD_TOOLS_VERSION: '28.0.3'
|
|
working_directory: ~/app
|
|
docker:
|
|
- image: reactnativecommunity/react-native-android
|
|
steps:
|
|
- checkout
|
|
- restore_cache:
|
|
keys:
|
|
- v1-npm-{{ .Branch }}-{{ checksum "yarn.lock" }}
|
|
- v1-npm
|
|
- run:
|
|
name: Install Dependencies
|
|
command: yarn install --ignore-engines
|
|
- save_cache:
|
|
key: v1-npm
|
|
paths:
|
|
- node_modules/
|
|
- save_cache:
|
|
key: v1-npm-{{ .Branch }}-{{ checksum "yarn.lock" }}
|
|
paths:
|
|
- node_modules/
|
|
- run:
|
|
name: Lint
|
|
command: yarn lint
|
|
- restore_cache:
|
|
keys:
|
|
- v1-gradle-{{ checksum "android/gradle/wrapper/gradle-wrapper.properties" }}-{{ checksum "examples/basic/android/gradle/wrapper/gradle-wrapper.properties" }}
|
|
- v1-gradle-wrapper
|
|
- restore_cache:
|
|
keys:
|
|
- v1-gradle-cache-{{ checksum "android/build.gradle" }}-{{ checksum "examples/basic/android/build.gradle" }}
|
|
- v1-gradle-cache
|
|
- run:
|
|
name: Run Checks
|
|
command: |
|
|
cd android
|
|
chmod +x ./gradlew && ./gradlew check
|
|
- store_artifacts:
|
|
path: android/build/reports
|
|
- run:
|
|
name: Run Yarn to Generate react.gradle
|
|
command: cd examples/basic/android && yarn
|
|
- run:
|
|
name: Build Sample App
|
|
command: |
|
|
cd examples/basic/android && chmod +x ./gradlew && ./gradlew clean && ./gradlew build
|
|
- store_artifacts:
|
|
path: examples/basic/android/app/build/reports
|
|
destination: app
|
|
- save_cache:
|
|
key: v1-gradle-wrapper-{{ checksum "examples/basic/android/gradle/wrapper/gradle-wrapper.properties" }}
|
|
paths:
|
|
- ~/.gradle/wrapper
|
|
- save_cache:
|
|
key: v1-gradle-cache-{{ checksum "examples/basic/android/build.gradle" }}
|
|
paths:
|
|
- ~/.gradle/caches
|
|
- deploy:
|
|
command: |
|
|
if [ "${CIRCLE_BRANCH}" == "master" ]; then
|
|
yarn ci:publish
|
|
fi
|
|
deploy-docs:
|
|
working_directory: ~/app
|
|
docker:
|
|
- image: circleci/node:8.11.1
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
name: Deploying to GitHub Pages
|
|
command: |
|
|
git config --global user.email "${GH_EMAIL}@users.noreply.github.com"
|
|
git config --global user.name "${GH_NAME}"
|
|
echo "machine github.com login $GH_NAME password $GH_TOKEN_DOCS" > ~/.netrc
|
|
cd website && yarn install && GIT_USER=${GH_NAME} yarn run publish-gh-pages
|
|
workflows:
|
|
version: 2
|
|
build-and-deploy-docs:
|
|
jobs:
|
|
- build-app
|
|
- deploy-docs:
|
|
filters:
|
|
branches:
|
|
only: master
|