diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 8c7e0f91..8bb74339 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -8,7 +8,7 @@ jobs: workspace: clean: all steps: - # Ubuntu typically comes with an outdated meson + - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - script: | sudo apt-get install libgtk-3-dev ninja-build @@ -16,9 +16,7 @@ jobs: - script: | meson setup build --buildtype=release --default-library=shared --backend=ninja displayName: 'Configure' - - script: | - ninja -C build - displayName: 'Build' + - template: azure-pipelines/build-ninja.yml - job: linux_amd64_static_ninja displayName: 'Linux amd64 Static with Ninja' @@ -27,6 +25,7 @@ jobs: workspace: clean: all steps: + - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - script: | sudo apt-get install libgtk-3-dev ninja-build @@ -34,9 +33,7 @@ jobs: - script: | meson setup build --buildtype=release --default-library=static --backend=ninja displayName: 'Configure' - - script: | - ninja -C build - displayName: 'Build' + - template: azure-pipelines/build-ninja.yml # vs2015 { @@ -47,16 +44,16 @@ jobs: workspace: clean: all steps: - - template: azure-pipelines/vs2015-install-latest-python3-meson.yml + - template: azure-pipelines/vs2015-install-python3.yml + - template: azure-pipelines/install-latest-meson.yml - template: azure-pipelines/windows-install-ninja.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 meson setup build --buildtype=release --default-library=shared --backend=ninja displayName: 'Configure' - - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - ninja -C build - displayName: 'Build' + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - job: windows_386_msvc2015_static_ninja displayName: 'Windows 386 MSVC2015 Static Ninja' @@ -65,16 +62,16 @@ jobs: workspace: clean: all steps: - - template: azure-pipelines/vs2015-install-latest-python3-meson.yml + - template: azure-pipelines/vs2015-install-python3.yml + - template: azure-pipelines/install-latest-meson.yml - template: azure-pipelines/windows-install-ninja.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 meson setup build --buildtype=release --default-library=static --backend=ninja displayName: 'Configure' - - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - ninja -C build - displayName: 'Build' + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - job: windows_386_msvc2015_shared_msbuild displayName: 'Windows 386 MSVC2015 Shared with MSBuild' @@ -83,16 +80,13 @@ jobs: workspace: clean: all steps: - - template: azure-pipelines/vs2015-install-latest-python3-meson.yml + - template: azure-pipelines/vs2015-install-python3.yml + - template: azure-pipelines/install-latest-meson.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 meson setup build --buildtype=release --default-library=shared --backend=vs2015 displayName: 'Configure' - - task: MSBuild@1 - inputs: - solution: 'build/*.sln' - maximumCpuCount: true - displayName: 'Build' + - template: azure-pipelines/build-msbuild.yml - job: windows_386_msvc2015_static_msbuild displayName: 'Windows 386 MSVC2015 Static with MSBuild' @@ -101,16 +95,13 @@ jobs: workspace: clean: all steps: - - template: azure-pipelines/vs2015-install-latest-python3-meson.yml + - template: azure-pipelines/vs2015-install-python3.yml + - template: azure-pipelines/install-latest-meson.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 meson setup build --buildtype=release --default-library=static --backend=vs2015 displayName: 'Configure' - - task: MSBuild@1 - inputs: - solution: 'build/*.sln' - maximumCpuCount: true - displayName: 'Build' + - template: azure-pipelines/build-msbuild.yml - job: windows_amd64_msvc2015_shared_ninja displayName: 'Windows amd64 MSVC2015 Shared Ninja' @@ -119,16 +110,16 @@ jobs: workspace: clean: all steps: - - template: azure-pipelines/vs2015-install-latest-python3-meson.yml + - template: azure-pipelines/vs2015-install-python3.yml + - template: azure-pipelines/install-latest-meson.yml - template: azure-pipelines/windows-install-ninja.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 meson setup build --buildtype=release --default-library=shared --backend=ninja displayName: 'Configure' - - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 - ninja -C build - displayName: 'Build' + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 - job: windows_amd64_msvc2015_static_ninja displayName: 'Windows amd64 MSVC2015 Static Ninja' @@ -137,16 +128,16 @@ jobs: workspace: clean: all steps: - - template: azure-pipelines/vs2015-install-latest-python3-meson.yml + - template: azure-pipelines/vs2015-install-python3.yml + - template: azure-pipelines/install-latest-meson.yml - template: azure-pipelines/windows-install-ninja.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 meson setup build --buildtype=release --default-library=static --backend=ninja displayName: 'Configure' - - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 - ninja -C build - displayName: 'Build' + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 - job: windows_amd64_msvc2015_shared_msbuild displayName: 'Windows amd64 MSVC2015 Shared with MSBuild' @@ -155,16 +146,13 @@ jobs: workspace: clean: all steps: - - template: azure-pipelines/vs2015-install-latest-python3-meson.yml + - template: azure-pipelines/vs2015-install-python3.yml + - template: azure-pipelines/install-latest-meson.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 meson setup build --buildtype=release --default-library=shared --backend=vs2015 displayName: 'Configure' - - task: MSBuild@1 - inputs: - solution: 'build/*.sln' - maximumCpuCount: true - displayName: 'Build' + - template: azure-pipelines/build-msbuild.yml - job: windows_amd64_msvc2015_static_msbuild displayName: 'Windows amd64 MSVC2015 Static with MSBuild' @@ -173,19 +161,18 @@ jobs: workspace: clean: all steps: - - template: azure-pipelines/vs2015-install-latest-python3-meson.yml + - template: azure-pipelines/vs2015-install-python3.yml + - template: azure-pipelines/install-latest-meson.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 meson setup build --buildtype=release --default-library=static --backend=vs2015 displayName: 'Configure' - - task: MSBuild@1 - inputs: - solution: 'build/*.sln' - maximumCpuCount: true - displayName: 'Build' + - template: azure-pipelines/build-msbuild.yml # } +# vs2017 { + - job: windows_386_msvc2017_shared_ninja displayName: 'Windows 386 MSVC2017 Shared Ninja' pool: @@ -193,16 +180,16 @@ jobs: workspace: clean: all steps: + - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - template: azure-pipelines/windows-install-ninja.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 meson setup build --buildtype=release --default-library=shared --backend=ninja displayName: 'Configure' - - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 - ninja -C build - displayName: 'Build' + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 - job: windows_386_msvc2017_static_ninja displayName: 'Windows 386 MSVC2017 Static Ninja' @@ -211,16 +198,16 @@ jobs: workspace: clean: all steps: + - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - template: azure-pipelines/windows-install-ninja.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 meson setup build --buildtype=release --default-library=static --backend=ninja displayName: 'Configure' - - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 - ninja -C build - displayName: 'Build' + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 - job: windows_386_msvc2017_shared_msbuild displayName: 'Windows 386 MSVC2017 Shared with MSBuild' @@ -229,16 +216,13 @@ jobs: workspace: clean: all steps: + - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 meson setup build --buildtype=release --default-library=shared --backend=vs2017 displayName: 'Configure' - - task: MSBuild@1 - inputs: - solution: 'build/*.sln' - maximumCpuCount: true - displayName: 'Build' + - template: azure-pipelines/build-msbuild.yml - job: windows_386_msvc2017_static_msbuild displayName: 'Windows 386 MSVC2017 Static with MSBuild' @@ -247,16 +231,13 @@ jobs: workspace: clean: all steps: + - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 meson setup build --buildtype=release --default-library=static --backend=vs2017 displayName: 'Configure' - - task: MSBuild@1 - inputs: - solution: 'build/*.sln' - maximumCpuCount: true - displayName: 'Build' + - template: azure-pipelines/build-msbuild.yml - job: windows_amd64_msvc2017_shared_ninja displayName: 'Windows amd64 MSVC2017 Shared Ninja' @@ -265,16 +246,16 @@ jobs: workspace: clean: all steps: + - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - template: azure-pipelines/windows-install-ninja.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 meson setup build --buildtype=release --default-library=shared --backend=ninja displayName: 'Configure' - - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 - ninja -C build - displayName: 'Build' + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 - job: windows_amd64_msvc2017_static_ninja displayName: 'Windows amd64 MSVC2017 Static Ninja' @@ -283,16 +264,16 @@ jobs: workspace: clean: all steps: + - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - template: azure-pipelines/windows-install-ninja.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 meson setup build --buildtype=release --default-library=static --backend=ninja displayName: 'Configure' - - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 - ninja -C build - displayName: 'Build' + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 - job: windows_amd64_msvc2017_shared_msbuild displayName: 'Windows amd64 MSVC2017 Shared with MSBuild' @@ -301,16 +282,13 @@ jobs: workspace: clean: all steps: + - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 meson setup build --buildtype=release --default-library=shared --backend=vs2017 displayName: 'Configure' - - task: MSBuild@1 - inputs: - solution: 'build/*.sln' - maximumCpuCount: true - displayName: 'Build' + - template: azure-pipelines/build-msbuild.yml - job: windows_amd64_msvc2017_static_msbuild displayName: 'Windows amd64 MSVC2017 Static with MSBuild' @@ -319,20 +297,15 @@ jobs: workspace: clean: all steps: + - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 meson setup build --buildtype=release --default-library=static --backend=vs2017 displayName: 'Configure' - - task: MSBuild@1 - inputs: - solution: 'build/*.sln' - maximumCpuCount: true - displayName: 'Build' + - template: azure-pipelines/build-msbuild.yml + +# } # mac: # imageName: 'macos-10.13' -# windowsVS2017: -# imageName: 'vs2017-win2016' -# windowsVS2015: -# imageName: 'vs2015-win2012r2' diff --git a/azure-pipelines/build-msbuild.yml b/azure-pipelines/build-msbuild.yml new file mode 100644 index 00000000..69ab3598 --- /dev/null +++ b/azure-pipelines/build-msbuild.yml @@ -0,0 +1,8 @@ +# 5 april 2019 + +steps: +- task: MSBuild@1 + inputs: + solution: 'build/*.sln' + maximumCpuCount: true + displayName: 'Build' diff --git a/azure-pipelines/build-ninja.yml b/azure-pipelines/build-ninja.yml new file mode 100644 index 00000000..2fd591e7 --- /dev/null +++ b/azure-pipelines/build-ninja.yml @@ -0,0 +1,10 @@ +# 5 april 2019 + +parameters: + beforeBuild: '' + +steps: +- script: | + ${{ parameters.beforeBuild }} + ninja -C build + displayName: 'Build' diff --git a/azure-pipelines/install-latest-meson.yml b/azure-pipelines/install-latest-meson.yml index 713533fc..4c86a01e 100644 --- a/azure-pipelines/install-latest-meson.yml +++ b/azure-pipelines/install-latest-meson.yml @@ -1,12 +1,6 @@ # 4 april 2019 -# TODO figure out how to make the script step runnable in parallel with the other dependency installation steps - steps: -- task: UsePythonVersion@0 - inputs: - versionSpec: '3.6' - architecture: 'x64' - script: | python -m pip install --upgrade pip setuptools wheel pip install meson diff --git a/azure-pipelines/setup-python3.yml b/azure-pipelines/setup-python3.yml new file mode 100644 index 00000000..7fe321ea --- /dev/null +++ b/azure-pipelines/setup-python3.yml @@ -0,0 +1,7 @@ +# 4 april 2019 + +steps: +- task: UsePythonVersion@0 + inputs: + versionSpec: '3.6' + architecture: 'x64' diff --git a/azure-pipelines/vs2015-install-latest-python3-meson.yml b/azure-pipelines/vs2015-install-python3.yml similarity index 82% rename from azure-pipelines/vs2015-install-latest-python3-meson.yml rename to azure-pipelines/vs2015-install-python3.yml index 0f62ee64..93502fc4 100644 --- a/azure-pipelines/vs2015-install-latest-python3-meson.yml +++ b/azure-pipelines/vs2015-install-python3.yml @@ -1,5 +1,6 @@ # 4 april 2019 # see https://github.com/Microsoft/azure-pipelines-image-generation/issues/374 for context and source + steps: - script: | powershell -Command "Invoke-WebRequest https://www.python.org/ftp/python/3.7.1/python-3.7.1-amd64-webinstall.exe -OutFile C:\py3-setup.exe" @@ -7,7 +8,3 @@ steps: @echo ##vso[task.prependpath]C:\Python37 @echo ##vso[task.prependpath]C:\Python37\Scripts displayName: 'Install Python 3' -- script: | - python -m pip install --upgrade pip setuptools wheel - pip install meson - displayName: 'Install Latest Meson' diff --git a/azure-pipelines/windows-install-ninja.yml b/azure-pipelines/windows-install-ninja.yml index d80aedfe..d9fe366f 100644 --- a/azure-pipelines/windows-install-ninja.yml +++ b/azure-pipelines/windows-install-ninja.yml @@ -1,5 +1,6 @@ # 4 april 2019 # why this? because choco isn't available on the VS2015 image and is extremely slow on the VS2017 one (it should not take 2.5 minutes to install just ninja!) + steps: - script: | powershell -Command "Invoke-WebRequest https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-win.zip -OutFile C:\ninja-win.zip"