version: 2 defaults: &defaults docker: - image: circleci/node:10 working_directory: ~/react-native-testing-library jobs: install-dependencies: <<: *defaults steps: - checkout - attach_workspace: at: ~/react-native-testing-library - restore_cache: keys: - dependencies-{{ checksum "package.json" }} - dependencies- - run: yarn install --frozen-lockfile - save_cache: key: dependencies-{{ checksum "package.json" }} paths: - node_modules - persist_to_workspace: root: . paths: - . lint-and-flow: <<: *defaults steps: - attach_workspace: at: ~/react-native-testing-library - run: | yarn lint yarn flow-check typescript: <<: *defaults steps: - attach_workspace: at: ~/react-native-testing-library - run: | yarn typescript-check tests: <<: *defaults steps: - attach_workspace: at: ~/react-native-testing-library - run: yarn test - store_artifacts: path: coverage destination: coverage workflows: version: 2 build-and-test: jobs: - install-dependencies - lint-and-flow: requires: - install-dependencies - typescript: requires: - install-dependencies - tests: requires: - install-dependencies