name: $(BuildID)

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

variables:
  CI: 1

jobs:
- job: PylintMyPy
  pool:
    vmImage: ubuntu-latest

  steps:
  - task: UsePythonVersion@0
    inputs:
      versionSpec: '3.7'
      addToPath: true
  - script: python -m pip install pylint mypy
    displayName: 'Install Pylint, MyPy'
  - script: pylint mesonbuild
    displayName: Lint Checks
  - script: mypy --follow-imports=skip  mesonbuild/mtest.py mesonbuild/minit.py mesonbuild/msetup.py mesonbuild/wrap tools/ mesonbuild/modules/fs.py


- job: vs2015
  pool:
    vmImage: vs2015-win2012r2

  strategy:
    matrix:
        vc2015x86ninja:
          arch: x86
          compiler: msvc2015
          backend: ninja
        vc2015x86vs:
          arch: x86
          compiler: msvc2015
          backend: vs2015

  steps:
  - template: ci/azure-steps.yml

- job: vs2017
  pool:
    vmImage: VS2017-Win2016

  strategy:
    matrix:
        vc2017x64ninja:
          arch: x64
          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 pytest-xdist
      displayName: pip install pytest-xdist
    - script: |
        set BOOST_ROOT=
        set PATH=%CYGWIN_ROOT%\bin;%SYSTEMROOT%\system32
        env.exe -- python3 run_tests.py --backend=ninja
      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 ^
        %TOOLCHAIN%
      displayName: Install Dependencies
    - powershell: |
        # https://github.com/mesonbuild/meson/issues/5807
        # https://github.com/msys2/MINGW-packages/issues/5719#issuecomment-525845769
        if ($env:compiler -eq 'gcc') {
          (New-Object net.webclient).DownloadFile("https://github.com/mesonbuild/cidata/raw/master/win32/setdllcharacteristics.exe", "$(System.WorkFolder)\setdllcharacteristics.exe")
          if ($env:MSYS2_ARCH -eq 'x86_64') {
            $(System.WorkFolder)\setdllcharacteristics -d $env:MSYS2_ROOT\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\cc1.exe
            $(System.WorkFolder)\setdllcharacteristics -d $env:MSYS2_ROOT\mingw64\lib\gcc\x86_64-w64-mingw32\9.2.0\cc1plus.exe
          } else {
            $(System.WorkFolder)\setdllcharacteristics -d $env:MSYS2_ROOT\mingw32\lib\gcc\i686-w64-mingw32\9.2.0\cc1.exe
            $(System.WorkFolder)\setdllcharacteristics -d $env:MSYS2_ROOT\mingw32\lib\gcc\i686-w64-mingw32\9.2.0\cc1plus.exe
          }
        }
      displayName: MSYS2 PCH hack
    - 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)
