version: 2
jobs:
  build:
    working_directory: ~/ionic-native/
    docker:
      - image: node:14
    steps:
      - checkout
      - restore_cache:
          key: ionic-site-{{ checksum "package.json" }}
      - run:
          name: Prepare ionic-site repo
          command: |
            if [ "${CIRCLE_BRANCH}" == "master" ]; then
              ./scripts/docs/prepare.sh
            fi
      - save_cache:
          key: ionic-site-{{ checksum "package.json" }}
          paths:
            - ~/ionic-site/
      - restore_cache:
          key: node_modules_{{ checksum "package.json" }}
      - run:
          name: Install node modules
          command: npm ci
      - save_cache:
          key: node_modules_{{ checksum "package.json" }}
          paths:
            - ~/ionic-native/node_modules/
      - run:
          name: Run tslint
          command: npm run lint
      - run: bash ./scripts/git/config.sh
      - run:
          name: Build Ionic Native
          command: npm run build
      - run:
          name: Generate README files to ensure docs are valid
          command: npm run readmes
      - run:
          name: Run tests
          command: npm test
      - add_ssh_keys
      - deploy:
          name: Update docs
          command: |
            if [ "${CIRCLE_BRANCH}" == "master" ]; then
              ./scripts/docs/update_docs.sh
            else
              echo "We are on ${CIRCLE_BRANCH} branch, not going to update docs."
            fi