version: 2.1

orbs:
  win: circleci/windows@5.0

parameters:
  nodeversion:
    type: string
    default: "24.12.0"

commands:
  nvminstall:
    steps:
      - run: nvm install << pipeline.parameters.nodeversion >>
      - run: nvm use << pipeline.parameters.nodeversion >>
  deps:
    steps:
      - run: npm install
  lint:
    steps:
      - run: npm run lint
  tests:
    steps:
      - run: npm test
  componenttests:
    steps:
      - run: npm run build-components
      - run: npm run test-components

jobs:
  run-in-docker:
    docker:
      - image: cimg/node:<< pipeline.parameters.nodeversion >>
    steps:
      - checkout
      - deps
      - lint
      - tests
      - componenttests

  run-on-windows:
    executor: win/default
    steps:
      - checkout
      - nvminstall
      - deps
      - lint
      - tests
      - componenttests

workflows:
 version: 2
 zookeeper_workflow:
   jobs:
     - run-in-docker
     - run-on-windows
