| name: $(BuildID) |
| |
| trigger: |
| branches: |
| include: |
| - 'master' |
| # Release branches |
| - '0.*' |
| |
| variables: |
| CI: 1 |
| |
| jobs: |
| |
| - job: vs2015 |
| pool: |
| vmImage: vs2015-win2012r2 |
| |
| strategy: |
| matrix: |
| vc2015x86ninja: |
| arch: x86 |
| compiler: msvc2015 |
| backend: ninja |
| vc2015x86vs: |
| arch: x86 |
| compiler: msvc2015 |
| backend: vs2015 |
| |
| steps: |
| - powershell: 'Invoke-WebRequest https://www.python.org/ftp/python/3.7.4/python-3.7.4.exe -OutFile c:\py3-setup.exe' |
| - script: | |
| c:\py3-setup.exe /quiet PrependPath=1 InstallAllUsers=1 Include_doc=0 Include_dev=0 Include_debug=0 TargetDir=c:\Python3 |
| - script: | |
| @echo ##vso[task.prependpath]C:\Python3 |
| @echo ##vso[task.prependpath]C:\Python3\Scripts |
| - 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 pefile pytest-xdist |
| displayName: pip install pefile 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 ^ |
| 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 |
| - 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) |