name: $(BuildID)

trigger:
  branches:
    include:
    - 'master'
    # Release branches
    - '0.*'
  paths:
    include:
      - 'mesonbuild'
      - 'test cases'
      - 'azure-pipelines.yml'
      - 'ci/azure-steps.yml'
      - 'run_project_tests.py'
      - 'run_tests.py'
      - 'run_unittests.py'
pr:
  branches:
    include:
    - '*'
  paths:
    include:
      - 'mesonbuild'
      - 'test cases'
      - 'azure-pipelines.yml'
      - 'ci/azure-steps.yml'
      - 'run_project_tests.py'
      - 'run_tests.py'
      - 'run_unittests.py'

variables:
  CI: 1
  SOURCE_VERSION: $(Build.SourceVersion)

jobs:

- job: vs2017
  timeoutInMinutes: 120
  pool:
    vmImage: VS2017-Win2016

  strategy:
    matrix:
        vc2017x86ninja:
          arch: x86
          compiler: msvc2017
          backend: ninja
          MESON_RSP_THRESHOLD: 0
        vc2017x64vs:
          arch: x64
          compiler: msvc2017
          backend: vs2017
        clangclx64ninja:
          arch: x64
          compiler: clang-cl
          backend: ninja

  steps:
  - task: UsePythonVersion@0
    inputs:
      versionSpec: '3.6'
      addToPath: true
      architecture: 'x64'
  - template: ci/azure-steps.yml

- job: vs2019
  timeoutInMinutes: 120
  pool:
    vmImage: windows-2019

  strategy:
    matrix:
        vc2019x64ninja:
          arch: x64
          compiler: msvc2019
          backend: ninja
        vc2019x64vs:
          arch: x64
          compiler: msvc2019
          backend: vs2019
        vc2019arm64ninjacross:
          arch: arm64
          compiler: msvc2019
          backend: ninja
          extraargs: --cross arm64cl.txt --cross-only

  steps:
  - task: UsePythonVersion@0
    inputs:
      versionSpec: '3.7'
      addToPath: true
      architecture: 'x64'
  - template: ci/azure-steps.yml
