version: 2

jobs:
  build:
    docker:
      - image: qlik/node-build
    working_directory: ~/http-metrics-middleware
    steps:
      - checkout
      - restore_cache:
          key: dependency-cache-{{ checksum "package-lock.json" }}
      - run: npm install --no-save
      - save_cache:
          key: dependency-cache-{{ checksum "package-lock.json" }}
          paths:
            - node_modules
      - run:
          name: Create report directory
          command: mkdir -p ./reports
      - run:
          name: Update version
          command: |
            VER=$(node -e "console.log(require('./package.json').version.replace(/-[0-9]+/, '-$CIRCLE_BUILD_NUM'))")
            echo "$VER" > ./version.txt
            if (echo $VER | egrep -- '-[0-9]+$' 1> /dev/null); then
              npm version $VER --no-git-tag-version
            fi
      - run: npm run lint
      - run:
          name: Unit tests
          command: |
            cc-test-reporter before-build
            npm run test-coverage
            cc-test-reporter after-build -t lcov --exit-code $?

workflows:
  version: 2
  main:
    jobs:
      - build
