workflows:
  version: 2
  node-multi-build:
    jobs:
      - node-v6
      - node-v8
      - node-v10
      - node-v12
version: 2
jobs:
  node-base: &node-base
    docker:
      - image: node
    steps:
      - checkout
      - restore_cache:
          keys:
            - npm-lock-{{ .Branch }}-{{ .Environment.CIRCLE_JOB }}-{{ checksum "package.json" }}
            - npm-lock-master-{{ .Environment.CIRCLE_JOB }}-{{ checksum "package.json" }}
            - npm-cache-{{ .Branch }}-{{ .Environment.CIRCLE_JOB }}
            - npm-cache-master-{{ .Environment.CIRCLE_JOB }}
      - run:
          name: Install dependencies
          command: npm install
      - run:
          name: Build
          command: npm run build
      - run:
          name: Test
          command: npm run test
      - save_cache:
          key: npm-lock-{{ .Branch }}-{{ .Environment.CIRCLE_JOB }}-{{ checksum "package.json" }}
          paths:
            - node_modules
      - save_cache:
          key: npm-cache-{{ .Branch }}-{{ .Environment.CIRCLE_JOB }}-{{ checksum "package.json" }}
          paths:
            - ~/.npm/_cacache
  node-v6:
    <<: *node-base
    docker:
      - image: circleci/node:6
  node-v8:
    <<: *node-base
    docker:
      - image: circleci/node:8
  node-v10:
    <<: *node-base
    docker:
      - image: circleci/node:10
  node-v12:
    <<: *node-base
    docker:
      - image: circleci/node:12
