version: 2

dockerbuild: &dockerbuild
  steps:
    - checkout
    - setup_remote_docker:
        docker_layer_caching: true
    - run:
        name: "Pull submodules"
        command: |
          git submodule init
          git submodule sync
          git submodule update
    - run:
        name: Install dependencies
        command: |
          npm install
        when: on_success
    - run:
        name: Test
        command: npm run test
        when: on_success

jobs:
  "node-20":
    <<: *dockerbuild
    docker:
      - image: node:20
  "node-22":
    <<: *dockerbuild
    docker:
      - image: node:22
  "node-24":
    <<: *dockerbuild
    docker:
      - image: node:24

workflows:
  version: 2
  build:
    jobs:
      - "node-20"
      - "node-22"
      - "node-24"

