version: 2.1

commands:
  test-nodejs:
    steps:
      - checkout

      # Download and cache dependencies
      - restore_cache:
          keys:
            - v2-1-{{ arch }}-npm-lock-{{ .Branch }}-{{ .Environment.CIRCLE_JOB }}-{{ checksum "package-lock.json" }}

      - run:
          name: Install dependencies
          command: npm install

      - save_cache:
          paths:
            - node_modules
          key: v2-1-{{ arch }}-npm-lock-{{ .Branch }}-{{ .Environment.CIRCLE_JOB }}-{{ checksum "package-lock.json" }}

      # run tests!
      - run:
          name: Test
          command: npm run test

jobs:
  node-v8:
    docker:
      - image: node:8
    working_directory: ~/repo
    steps:
      - test-nodejs
  node-v9:
    docker:
      - image: node:9
    working_directory: ~/repo
    steps:
      - test-nodejs
  node-v10:
    docker:
      - image: node:10
    working_directory: ~/repo
    steps:
      - test-nodejs

workflows:
  node-multi-build:
    jobs:
      - node-v8
      - node-v9
      - node-v10
