version: 2 jobs: node: working_directory: ~/rn-dp docker: - image: circleci/node:8 steps: - checkout - restore_cache: key: yarn-v1-{{ checksum "example/yarn.lock" }}-{{ arch }} - restore_cache: key: node-v1-{{ checksum "example/package.json" }}-{{ arch }} - run: cd example && yarn install - save_cache: key: yarn-v1-{{ checksum "example/yarn.lock" }}-{{ arch }} paths: - ~/.cache/yarn - save_cache: key: node-v1-{{ checksum "example/package.json" }}-{{ arch }} paths: - example/node_modules - persist_to_workspace: root: ~/rn-dp paths: - example/node_modules android: working_directory: ~/rn-dp/example/android docker: - image: circleci/android:api-27-node8-alpha environment: JVM_OPTS: -Xmx3200m steps: - checkout: path: ~/rn-dp - attach_workspace: at: ~/rn-dp - restore_cache: key: jars-{{ checksum "build.gradle" }}-{{ checksum "app/build.gradle" }} - run: name: Cd command: cd .. && ls -la - run: name: Download Dependencies command: ./gradlew androidDependencies - save_cache: paths: - ~/.gradle key: jars-{{ checksum "build.gradle" }}-{{ checksum "app/build.gradle" }} - run: name: Setup emulator command: sdkmanager "system-images;android-16;default;armeabi-v7a" && echo "no" | avdmanager create avd -n test -k "system-images;android-16;default;armeabi-v7a" - run: name: Launch emulator command: export LD_LIBRARY_PATH=${ANDROID_HOME}/emulator/lib64:${ANDROID_HOME}/emulator/lib64/qt/lib && emulator64-arm -avd test -noaudio -no-boot-anim -no-window -accel auto -verbose background: true - run: name: Wait emulator command: | # start the emulator - emulator -avd circleci-android22 -no-audio -no-window: background: true parallel: true # wait for it to have booted circle-android wait-for-boot # unlock the emulator screen sleep 30 adb shell input keyevent 82 ./gradlew connectedAndroidTest -PdisablePreDex - store_artifacts: path: app/build/reports destination: reports - store_test_results: path: app/build/test-results workflows: version: 2 node-android: jobs: - node - android: requires: - node