version: 2
jobs:
  build-and-test:
    docker:
      - image: circleci/node:10.16.0-browsers
    environment:
          LANG: en_US.UTF-8
    steps:
      - checkout
      - run: 
          name: Update Yarn
          command: 'sudo npm update -g yarn'
      - restore-cache:
          name: Restore Yarn Package Cache
          keys: 
            - yarn-packages-{{ checksum "yarn.lock" }}
      - run:
          name: Install Dependencies
          command: yarn install
      - save-cache:
          name: Save Yarn Package Cache
          key: yarn-packages-{{ checksum "yarn.lock" }}
          paths:
            - ~/.cache/yarn
      - run: 
          name: Build
          command: yarn run build
      - run: 
          name: Setup Test Env
          command: yarn run test:cli
      - run: 
          name: Tests
          command: yarn run test:jest
      - store_artifacts:
          path: build

workflows:
  version: 2
  build-test-report:
    jobs:
      - build-and-test