.circleci/config.yml
version: 2.1
commands:
cached-dependencies:
steps:
- restore_cache:
name: Restore Yarn Package Cache
keys:
- yarn-packages-{{ checksum "yarn.lock" }}
- run:
name: Install Dependencies
command: yarn install --frozen-lockfile
- save_cache:
name: Save Yarn Package Cache
key: yarn-packages-{{ checksum "yarn.lock" }}
paths:
- ~/.cache/yarn
install_and_test:
description: >-
Install everything required to run the test suite, then run it.
steps:
- cached-dependencies
- run: yarn test.prod
jobs:
# https://nodejs.org/en/about/releases/
test_node_lts:
docker:
- image: circleci/node:lts
steps:
- checkout
- run:
name: Download cc-test-reporter
command: |
curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
chmod +x ./cc-test-reporter
- run:
name: cc-before
command: |
./cc-test-reporter before-build
- install_and_test
- run:
name: cc-after
command: |
./cc-test-reporter after-build --coverage-input-type lcov --exit-code $?
test_node_latest:
docker:
- image: circleci/node:latest
steps:
- checkout
- install_and_test
release:
docker:
- image: circleci/node:lts
steps:
- checkout
- run: yarn
- run: yarn build
- run: yarn release
workflows:
version: 2
test_and_release:
jobs:
- test_node_lts
- test_node_latest
- release:
filters:
branches:
only: master
requires:
- test_node_lts
- test_node_latest