# kick: 1

version: 2.1

commands:
  run_tests:
    description: "Build rtti-typescript and run the test suite"
    parameters:
      version:
        type: string
    steps:
      - checkout
      - run: sudo apt-get update
      - run: sudo apt-get install python2
      - restore_cache:
          keys:
          - v1-dependencies-<< parameters.version >>-{{ checksum "package.json" }}
          - v1-dependencies-<< parameters.version >>-
      - run:
          name: Initial NPM version
          command: npm --version
      - run: sudo npm install npm@latest -g
      - run:
          name: Upgraded NPM version
          command: npm --version
      - run: npm install
      - save_cache:
          paths:
            - node_modules
          key: v1-dependencies-<< parameters.version >>-{{ checksum "package.json" }}
      - run: npm test
      - run: npm run test:corpus
      - store_artifacts:
          path: coverage
jobs:
  node-14:
    docker:
      - image: cimg/node:14.21
    working_directory: ~/repo
    steps:
      - run_tests:
          version: "14"
  node-16:
    docker:
      - image: cimg/node:16.14
    working_directory: ~/repo
    steps:
      - run_tests:
          version: "16"
  node-18:
    docker:
      - image: cimg/node:18.16
    working_directory: ~/repo
    steps:
      - run_tests:
          version: "18"
  node-20:
    docker:
      - image: cimg/node:20.2
    working_directory: ~/repo
    steps:
      - run_tests:
          version: "20"

workflows:
  version: 2
  build:
    jobs:
      - node-20
      - node-18
      - node-16
      - node-14
