version: 2 jobs: build-and-test: docker: - image: 'circleci/node:latest' steps: - checkout - restore_cache: keys: - yarn-v1-{{ .Branch }}-{{ checksum "yarn.lock" }} - yarn-v1-{{ .Branch }}- - yarn-v1- - run: name: Install command: yarn install - run: name: Lint command: yarn lint - run: name: Build command: yarn build - run: name: Test command: yarn test --coverage --coverageReporters lcov - run: name: Upload Test Coverage command: bash <(curl -s https://codecov.io/bash) -f coverage/lcov.info - save_cache: paths: - ~/.cache/yarn key: yarn-v1-{{ .Branch }}-{{ checksum "yarn.lock" }} - persist_to_workspace: root: . paths: - . release: docker: - image: 'circleci/node:latest' steps: - attach_workspace: at: . - run: name: Release command: yarn semantic-release workflows: version: 2 build-test-publish: jobs: - build-and-test - release: filters: branches: only: - master requires: - build-and-test