version: 2
executorType: docker
jobs:
  build:
    resource_class: large
    environment:
      - GRADLE_OPTS: '-Dorg.gradle.jvmargs="-Xmx2048m -XX:+HeapDumpOnOutOfMemoryError"'
      - REACT_NATIVE_MAX_WORKERS: 2
      - ANDROID_BUILD_TOOLS_VERSION: "26.0.2"
    working_directory: ~/app
    docker:
      - image: entria/react-native-android:0.1.82
    steps:
      - checkout
      - restore_cache:
          keys:
            - v1-npm-{{ .Branch }}-{{ checksum "yarn.lock" }}
            - v1-npm
      - run:
          name: Install Dependencies
          command: yarn install --ignore-engines
      - run:
          name: Lint
          command: yarn lint
      - run:
          name: Run Checks
          command: |
            cd android
            chmod +x ./gradlew && ./gradlew check
      - deploy:
          command: |
            if [ "${CIRCLE_BRANCH}" == "master" ]; then
              yarn ci:publish
            fi
      - save_cache:
          key: v1-npm
          paths:
            - node_modules/
      - save_cache:
          key: v1-npm-{{ .Branch }}-{{ checksum "yarn.lock" }}
          paths:
            - node_modules/
