# Javascript Node CircleCI 2.0 configuration file
#
# Check https://circleci.com/docs/2.0/language-javascript/ for more details
#
version: 2
jobs:
    build:
        docker:
        # specify the version you desire here
        -   image: circleci/node:10.3-browsers

        # Specify service dependencies here if necessary
        # CircleCI maintains a library of pre-built images
        # documented at https://circleci.com/docs/2.0/circleci-images/
        # - image: circleci/mongo:3.4.4

        working_directory: ~/repo

        steps:
        - checkout

        # Download and cache dependencies
        -   restore_cache:
                keys:
                - v2-dependencies-{{ checksum "package.json" }}
                # fallback to using the latest cache if no exact match is found
                - v2-dependencies-

        -   run:
                npm install

        -   save_cache:
                paths:
                - node_modules
                key: v2-dependencies-{{ checksum "package.json" }}

        # run AVA tests
        -   run:
                command: |
                    mkdir -p ~/reports
                    npx ava --tap | npx tap-xunit > ~/reports/ava.xml
                when: always
        -   store_test_results:
                path: ~/reports
        -   store_artifacts:
                path: ~/reports
