version: 2 aliases: - &filter-only-master branches: only: - master 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 "yarn.lock" }} - run: yarn install --frozen-lockfile --no-progress --non-interactive --cache-folder ~/.cache/yarn - save_cache: key: dependencies-{{ checksum "yarn.lock" }} paths: - ~/.cache/yarn - 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 deploy-website: <<: *defaults steps: - checkout - run: name: Deploying to GitHub Pages command: | git config --global user.email "thymikee@users.noreply.github.com" git config --global user.name "Michał Pierzchała" echo "machine github.com login thymikee password $GITHUB_TOKEN" > ~/.netrc cd website && yarn install && GIT_USER=thymikee yarn run publish-gh-pages workflows: version: 2 build-and-test: jobs: - install-dependencies - lint-and-flow: requires: - install-dependencies - typescript: requires: - install-dependencies - tests: requires: - install-dependencies - deploy-website: requires: - install-dependencies filters: *filter-only-master