version: 0.9.2.{build} environment: matrix: - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 CMAKE_GENERATOR: Visual Studio 14 2015 TOOLSET: 140 - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 CMAKE_GENERATOR: Visual Studio 16 2019 TOOLSET: 142 MDBX_BUILD_SHARED_LIBRARY: OFF MDBX_AVOID_CRT: OFF - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 CMAKE_GENERATOR: Visual Studio 16 2019 TOOLSET: 142 MDBX_BUILD_SHARED_LIBRARY: ON MDBX_AVOID_CRT: ON - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 CMAKE_GENERATOR: Visual Studio 16 2019 TOOLSET: 142 MDBX_BUILD_SHARED_LIBRARY: OFF MDBX_AVOID_CRT: ON - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 CMAKE_GENERATOR: Visual Studio 16 2019 TOOLSET: 142 MDBX_BUILD_SHARED_LIBRARY: ON MDBX_AVOID_CRT: OFF - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 CMAKE_GENERATOR: Visual Studio 15 2017 TOOLSET: 141 branches: except: - coverity_scan configuration: - Debug # MSVC-2019 hangs during code generation/optimization due to its own internal errors. # I have found out that the problem occurs because of the /Ob2 option (see https://github.com/erthink/libmdbx/issues/116). # So the simplest workaround is to using RelWithDebiInfo configuration for testing (cmake will uses /Ob1 option), instead of Release. # - Release - RelWithDebInfo platform: - Win32 - x64 # MSVC-2019 may hang up during code generation/optimization due to its own internal errors. matrix: allow_failures: - image: Visual Studio 2019 configuration: Release # Enable RDP for troubleshooting init: - ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1')) before_build: - git clean -x -f -d - git submodule sync - git fetch --tags --prune - git submodule update --init --recursive - git submodule foreach --recursive git fetch --tags --prune - cmake --version build_script: - ps: | Write-Output "*******************************************************************************" Write-Output "Configuration: $env:CONFIGURATION" Write-Output "Platform: $env:PLATFORM" Write-Output "Toolchain: $env:CMAKE_GENERATOR v$env:TOOLSET" Write-Output "Options: MDBX_AVOID_CRT=$env:MDBX_AVOID_CRT MDBX_BUILD_SHARED_LIBRARY=$env:MDBX_BUILD_SHARED_LIBRARY" Write-Output "*******************************************************************************" md _build -Force | Out-Null cd _build $generator = $env:CMAKE_GENERATOR if ($env:TOOLSET -lt 142) { if ($env:PLATFORM -eq "x64") { $generator = "$generator Win64" } & cmake -G "$generator" -D CMAKE_CONFIGURATION_TYPES="Debug;Release;RelWithDebInfo" -D MDBX_AVOID_CRT:BOOL=$env:MDBX_AVOID_CRT -D MDBX_BUILD_SHARED_LIBRARY:BOOL=$env:MDBX_BUILD_SHARED_LIBRARY .. } else { & cmake -G "$generator" -A $env:PLATFORM -D CMAKE_CONFIGURATION_TYPES="Debug;Release;RelWithDebInfo" -DMDBX_AVOID_CRT:BOOL=$env:MDBX_AVOID_CRT -D MDBX_BUILD_SHARED_LIBRARY:BOOL=$env:MDBX_BUILD_SHARED_LIBRARY .. } if ($LastExitCode -ne 0) { throw "Exec: $ErrorMessage" } Write-Output "*******************************************************************************" & cmake --build . --config $env:CONFIGURATION if ($LastExitCode -ne 0) { throw "Exec: $ErrorMessage" } Write-Output "*******************************************************************************" test_script: - ps: | if (($env:PLATFORM -ne "ARM") -and ($env:PLATFORM -ne "ARM64")) { & ./$env:CONFIGURATION/mdbx_test.exe --progress --console=no --pathname=test.db --dont-cleanup-after basic > test.log Get-Content test.log | Select-Object -last 42 if ($LastExitCode -ne 0) { throw "Exec: $ErrorMessage" } else { & ./$env:CONFIGURATION/mdbx_chk.exe -nvv test.db | Tee-Object -file chk.log | Select-Object -last 42 } } on_failure: - ps: Push-AppveyorArtifact \projects\libmdbx\_build\test.log - ps: Push-AppveyorArtifact \projects\libmdbx\_build\test.db - ps: Push-AppveyorArtifact \projects\libmdbx\_build\chk.log