diff --git a/appveyor.yml b/appveyor.yml index 9b461937..334a5b5f 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -18,10 +18,16 @@ build_script: - ps: if ($env:APPVEYOR_BUILD_WORKER_IMAGE -eq "Visual Studio 2022") { .\scripts\nuget_build.ps1 2022} test_script: + - ps: if ($env:APPVEYOR_BUILD_WORKER_IMAGE -eq "Visual Studio 2015") { .\tests\cmake-appveyor.ps1 9 10 11 12 14 } + - ps: if ($env:APPVEYOR_BUILD_WORKER_IMAGE -eq "Visual Studio 2017") { .\tests\cmake-appveyor.ps1 15 } + - ps: if ($env:APPVEYOR_BUILD_WORKER_IMAGE -eq "Visual Studio 2019") { .\tests\cmake-appveyor.ps1 19 } + - ps: if ($env:APPVEYOR_BUILD_WORKER_IMAGE -eq "Visual Studio 2022") { .\tests\cmake-appveyor.ps1 22 } + - ps: if ($env:APPVEYOR_BUILD_WORKER_IMAGE -eq "Visual Studio 2015") { .\tests\autotest-appveyor.ps1 9 10 11 12 14 } - ps: if ($env:APPVEYOR_BUILD_WORKER_IMAGE -eq "Visual Studio 2017") { .\tests\autotest-appveyor.ps1 15 } - ps: if ($env:APPVEYOR_BUILD_WORKER_IMAGE -eq "Visual Studio 2019") { .\tests\autotest-appveyor.ps1 19 } - ps: if ($env:APPVEYOR_BUILD_WORKER_IMAGE -eq "Visual Studio 2022") { .\tests\autotest-appveyor.ps1 22 } + - ps: if ($env:APPVEYOR_BUILD_WORKER_IMAGE -eq "Visual Studio 2015") { & C:\cygwin\bin\bash.exe -c "PATH=/usr/bin:/usr/local/bin:$PATH; make -j2 config=coverage test && bash <(curl -s https://codecov.io/bash) -f pugixml.cpp.gcov 2>&1" } - ps: if ($env:APPVEYOR_BUILD_WORKER_IMAGE -eq "Visual Studio 2015") { & C:\cygwin\bin\bash.exe -c "PATH=/usr/bin:/usr/local/bin:$PATH; make -j2 config=coverage defines=PUGIXML_WCHAR_MODE test && bash <(curl -s https://codecov.io/bash) -f pugixml.cpp.gcov 2>&1" } diff --git a/tests/cmake-appveyor.ps1 b/tests/cmake-appveyor.ps1 new file mode 100644 index 00000000..2a744871 --- /dev/null +++ b/tests/cmake-appveyor.ps1 @@ -0,0 +1,47 @@ +$failed = $FALSE + +foreach ($vs in $args) +{ + $target = "cmake_vs${vs}" + + Add-AppveyorTest $target -Outcome Running + + Write-Output "# Setting up CMake VS$vs" + & cmake . -G "Visual Studio $vs" | Tee-Object -Variable cmakeOutput + + $sw = [Diagnostics.Stopwatch]::StartNew() + + if ($?) + { + Write-Output "# Building" + + & cmake --build . | Tee-Object -Variable cmakeOutput + + if ($?) + { + Write-Output "# Passed" + + Update-AppveyorTest $target -Outcome Passed -StdOut ($cmakeOutput | out-string) -Duration $sw.ElapsedMilliseconds + } + else + { + Write-Output "# Failed to build" + + Update-AppveyorTest $target -Outcome Failed -StdOut ($cmakeOutput | out-string) -ErrorMessage "Building failed" + + $failed = $TRUE + } + } + else + { + Write-Output "# Failed to configure" + + Update-AppveyorTest $target -Outcome Failed -StdOut ($cmakeOutput | out-string) -ErrorMessage "Configuration failed" + + $failed = $TRUE + } +} + +if ($failed) { throw "One or more build steps failed" } + +Write-Output "# End"