| 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 |
| |
| 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 |
| compiler: gcc |
| gccx64ninja: |
| MSYSTEM: MINGW64 |
| MSYS2_ARCH: x86_64 |
| MESON_RSP_THRESHOLD: 0 |
| 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 |
| # Remove this line when https://github.com/msys2/MSYS2-packages/pull/2022 is merged |
| %MSYS2_ROOT%\usr\bin\pacman --noconfirm -Sy dash |
| echo Updating msys2 |
| %MSYS2_ROOT%\usr\bin\pacman --noconfirm -Syuu || echo system update failed, ignoring |
| echo Killing all msys2 processes |
| taskkill /F /FI "MODULES eq msys-2.0.dll" |
| echo Updating msys2 (again) |
| %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)-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% |
| %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) |