resources:
  repositories:
    - repository: pipeline-templates
      type: git
      name: cloud-infrastructure

parameters:
  - name: deploy
    displayName: Deploy
    type: boolean
    default: false

trigger:
  batch: true
  branches:
    include:
      - master

variables:
  - name: isMaster
    value: ${{ eq(variables['Build.SourceBranch'], 'refs/heads/master') }}

pool:
  vmImage: ubuntu-latest

stages:
  - stage: Build
    jobs:
      - job: BuildNode
        displayName: Build, test and lint node project
        steps:
          - template: pipeline/azure-tasks/jobs/build-node.yml@pipeline-templates
            parameters:
              artifactName: app-dist

      - job: Sonar
        displayName: SonarCloud analyse
        dependsOn: BuildNode
        steps:
          - template: pipeline/azure-tasks/jobs/sonar.yml@pipeline-templates
            parameters:
              sonarProjectName: 'Spraakherkenning Novo SDK'
              sonarProjectKey: 'zwijsenonline_novo-sdk'

  - stage: Release
    dependsOn: Build
    displayName: 'Release naar npm'
    jobs:
      - template: pipeline/azure-tasks/publish-npm.yml@pipeline-templates
        parameters:
          artifactName: app-dist
          publish: ${{ or(eq(parameters.deploy, true), eq(variables.isMaster, true)) }}
