The Meson Build System
http://mesonbuild.com/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
218 lines
6.4 KiB
218 lines
6.4 KiB
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)
|
|
|