# Node.js
# Build a general Node.js project with npm.
# Add steps that analyze code, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/javascript

trigger:
  - master

pool:
  vmImage: 'ubuntu-latest'

strategy:
  matrix:
    Node16:
      node_version: '16.x'
    Node18:
      node_version: '18.x'
    Node20:
      node_version: '20.x'
    NodeLatest:
      node_version: 'latest'

steps:
  - task: NodeTool@0
    inputs:
      versionSpec: '$(node_version)'
    displayName: 'Install Node.js $(node_version)'

  - script: |
      npm install
    displayName: 'npm install'

  - script: |
      npm run build
    displayName: 'TypeScript build'

  - script: |
      npm run lint
    displayName: 'ESLint check'

  - script: |
      npm run format:check
    displayName: 'Prettier format check'

  - script: |
      npm test
    displayName: 'Run tests'
