version: 2 jobs: build: docker: - image: circleci/node:12-stretch working_directory: ~/repo steps: - checkout - restore_cache: keys: - v1-dependencies-{{ checksum "package.json" }} # fallback to using the latest cache if no exact match is found - v1-dependencies- - run: name: Install NPM dependencies command: npm install - save_cache: paths: - node_modules key: v1-dependencies-{{ checksum "package.json" }} - run: name: Test syntax and perform type checking command: npm test deploy: requires: - build filters: tags: only: /^v.*/ steps: - run: name: Authenticate with registry command: echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > ~/repo/.npmrc - run: name: Deploy package command: npm run deploy