name: $(BuildID)

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

variables:
  CI: 1

jobs:

- job: vs2017
  pool:
    vmImage: VS2017-Win2016

  strategy:
    matrix:
        vc2017x86ninja:
          arch: x86
          compiler: msvc2017
          backend: ninja
        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
  pool:
    vmImage: windows-2019

  strategy:
    matrix:
        vc2019x64ninja:
          arch: x64
          compiler: msvc2019
          backend: ninja
        vc2019x64vs:
          arch: x64
          compiler: msvc2019
          backend: vs2019

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

- job: cygwin
  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,^
        libarchive13,^
        libboost-devel,^
        libglib2.0-devel,^
        libgtk3-devel,^
        libjsoncpp19,^
        librhash0,^
        libuv1,^
        ninja,^
        python2-devel,^
        python3-devel,^
        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 pefile pytest-xdist
      displayName: pip install pefile pytest-xdist
    - 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
        compiler: gcc
      gccx64ninja:
        MSYSTEM: MINGW64
        MSYS2_ARCH: x86_64
        compiler: gcc
      clangx64ninja:
        MSYSTEM: MINGW64
        MSYS2_ARCH: x86_64
        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
        %MSYS2_ROOT%\usr\bin\pacman --noconfirm -Syyuu
        %MSYS2_ROOT%\usr\bin\pacman --noconfirm -Syuu
      displayName: Update 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)-ninja ^
        mingw-w64-$(MSYS2_ARCH)-pkg-config ^
        mingw-w64-$(MSYS2_ARCH)-python2 ^
        mingw-w64-$(MSYS2_ARCH)-python3 ^
        mingw-w64-$(MSYS2_ARCH)-python3-setuptools ^
        mingw-w64-$(MSYS2_ARCH)-python3-pip ^
        %TOOLCHAIN%
        %MSYS2_ROOT%\usr\bin\bash -lc "python3 -m pip --disable-pip-version-check install 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)
