name: $(BuildID)

trigger:
  branches:
    include:
    - 'master'
    # Release branches
    - '0.*'

variables:
  CI: 1

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.5'
      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

- job: cygwin
  timeoutInMinutes: 120
  pool:
    vmImage: VS2017-Win2016
  strategy:
    matrix:
        gccx64ninja: {}
  variables:
    CYGWIN_ROOT: $(System.Workfolder)\cygwin
    CYGWIN_MIRROR: http://cygwin.mirror.constant.com
  steps:
    - script: |
        choco install cygwin --params="/InstallDir:%CYGWIN_ROOT%"
      displayName: Install Cygwin
    - script: |
        %CYGWIN_ROOT%\cygwinsetup.exe -qnNdO -R "%CYGWIN_ROOT%" -s "%CYGWIN_MIRROR%" -g -P ^
        gcc-fortran,^
        gcc-objc++,^
        gcc-objc,^
        git,^
        gobject-introspection,^
        gtk-doc,^
        libarchive13,^
        libboost-devel,^
        libglib2.0-devel,^
        libgtk3-devel,^
        libjsoncpp19,^
        librhash0,^
        libuv1,^
        libxml2,^
        libxml2-devel,^
        libxslt,^
        libxslt-devel,^
        ninja,^
        python2-devel,^
        python3-devel,^
        python3-libxml2,^
        python3-libxslt,^
        python36-pip,^
        vala,^
        wget,^
        cmake,^
        zlib-devel
      displayName: Install Dependencies
    - script: |
        set PATH=%CYGWIN_ROOT%\bin;%SYSTEMROOT%\system32
        env.exe -- python3 -m pip --disable-pip-version-check install gcovr pefile jsonschema
      displayName: "pip install gcovr pefile jsonschema (pytest-xdist broken, skipped: CHECK ME AGAIN)"
    - script: |
        set BOOST_ROOT=
        set PATH=%CYGWIN_ROOT%\bin;%SYSTEMROOT%\system32
        set SKIP_STATIC_BOOST=1
        env.exe -- python3 run_tests.py --backend=ninja
      # Cygwin's static boost installation is broken (some static library
      # variants such as boost_thread are not present)
      displayName: Run Tests
    - task: CopyFiles@2
      condition: not(canceled())
      inputs:
        contents: 'meson-test-run.*'
        targetFolder: $(Build.ArtifactStagingDirectory)
    - task: PublishBuildArtifacts@1
      inputs:
        artifactName: $(System.JobName)
      # publishing artifacts from PRs from a fork is currently blocked
      condition: and(eq(variables['system.pullrequest.isfork'], false), not(canceled()))
    - task: PublishTestResults@2
      condition: not(canceled())
      inputs:
        testResultsFiles: meson-test-run.xml
        testRunTitle: $(System.JobName)

- job: msys2
  pool:
    vmImage: VS2017-Win2016
  strategy:
    matrix:
      gccx86ninja:
        MSYSTEM: MINGW32
        MSYS2_ARCH: i686
        MSYS2_CURSES: ncurses
        compiler: gcc
      gccx64ninja:
        MSYSTEM: MINGW64
        MSYS2_ARCH: x86_64
        MSYS2_CURSES: pdcurses
        MESON_RSP_THRESHOLD: 0
        compiler: gcc
      clangx64ninja:
        MSYSTEM: MINGW64
        MSYS2_ARCH: x86_64
        MSYS2_CURSES:
        compiler: clang
  variables:
    MSYS2_ROOT: $(System.Workfolder)\msys64
  steps:
    - script: |
        choco install msys2 --params="/InstallDir:%MSYS2_ROOT% /NoUpdate /NoPath"
      displayName: Install MSYS2
    - script: |
        set PATH=%MSYS2_ROOT%\usr\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem
        if %compiler%==gcc ( set "TOOLCHAIN=mingw-w64-$(MSYS2_ARCH)-toolchain" ) else ( set "TOOLCHAIN=mingw-w64-$(MSYS2_ARCH)-clang" )
        %MSYS2_ROOT%\usr\bin\pacman --noconfirm --needed -S ^
        base-devel ^
        git ^
        mercurial ^
        mingw-w64-$(MSYS2_ARCH)-cmake ^
        mingw-w64-$(MSYS2_ARCH)-lcov ^
        mingw-w64-$(MSYS2_ARCH)-libxml2 ^
        mingw-w64-$(MSYS2_ARCH)-ninja ^
        mingw-w64-$(MSYS2_ARCH)-pkg-config ^
        mingw-w64-$(MSYS2_ARCH)-python2 ^
        mingw-w64-$(MSYS2_ARCH)-python3 ^
        mingw-w64-$(MSYS2_ARCH)-python3-lxml ^
        mingw-w64-$(MSYS2_ARCH)-python3-setuptools ^
        mingw-w64-$(MSYS2_ARCH)-python3-pip ^
        %TOOLCHAIN%
        if not "%MSYS2_CURSES%" == "" ( %MSYS2_ROOT%\usr\bin\pacman --noconfirm --needed -S mingw-w64-$(MSYS2_ARCH)-$(MSYS2_CURSES) )
        %MSYS2_ROOT%\usr\bin\bash -lc "python3 -m pip --disable-pip-version-check install gcovr jsonschema pefile"
      displayName: Install Dependencies
    - script: |
        set BOOST_ROOT=
        set PATH=%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem
        set PATHEXT=%PATHEXT%;.py
        if %compiler%==clang ( set CC=clang && set CXX=clang++ && set OBJC=clang && set OBJCXX=clang++ )
        %MSYS2_ROOT%\usr\bin\bash -lc "MSYSTEM= python3 run_tests.py --backend=ninja"
      env:
        CHERE_INVOKING: yes
      displayName: Run Tests
    - task: CopyFiles@2
      condition: not(canceled())
      inputs:
        contents: 'meson-test-run.*'
        targetFolder: $(Build.ArtifactStagingDirectory)
    - task: PublishBuildArtifacts@1
      inputs:
        artifactName: $(System.JobName)
      # publishing artifacts from PRs from a fork is currently blocked
      condition: and(eq(variables['system.pullrequest.isfork'], false), not(canceled()))
    - task: PublishTestResults@2
      condition: not(canceled())
      inputs:
        testResultsFiles: meson-test-run.xml
        testRunTitle: $(System.JobName)
