# Copyright (c) 2014, Ruslan Baratov # Copyright (c) 2014, 2016 Alexander Lamaison # Copyright (c) 2020, 2021 Marc Hoersken # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # # * Redistributions of source code must retain the above copyright notice, this # list of conditions and the following disclaimer. # # * Redistributions in binary form must reproduce the above copyright notice, # this list of conditions and the following disclaimer in the documentation # and/or other materials provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. os: Visual Studio 2015 environment: matrix: - GENERATOR: "Visual Studio 14 2015" BUILD_SHARED_LIBS: ON CRYPTO_BACKEND: "OpenSSL" - GENERATOR: "Visual Studio 14 2015" BUILD_SHARED_LIBS: OFF CRYPTO_BACKEND: "OpenSSL" - GENERATOR: "Visual Studio 12 2013" BUILD_SHARED_LIBS: ON CRYPTO_BACKEND: "OpenSSL" - GENERATOR: "Visual Studio 12 2013" BUILD_SHARED_LIBS: OFF CRYPTO_BACKEND: "OpenSSL" - GENERATOR: "Visual Studio 14 2015" BUILD_SHARED_LIBS: ON CRYPTO_BACKEND: "WinCNG" - GENERATOR: "Visual Studio 14 2015" BUILD_SHARED_LIBS: OFF CRYPTO_BACKEND: "WinCNG" - GENERATOR: "Visual Studio 12 2013" BUILD_SHARED_LIBS: ON CRYPTO_BACKEND: "WinCNG" - GENERATOR: "Visual Studio 12 2013" BUILD_SHARED_LIBS: OFF CRYPTO_BACKEND: "WinCNG" platform: - x86 - x64 configuration: # - Debug - Release matrix: fast_finish: true allow_failures: - GENERATOR: "Visual Studio 9 2008" platform: x64 install: # prepare local SSH server for reverse tunneling from GitHub Actions hosting our docker container - ps: | $env:OPENSSH_SERVER_PORT = Get-Random -Minimum 2000 -Maximum 2300 [System.Environment]::SetEnvironmentVariable("OPENSSH_SERVER_PORT", $env:OPENSSH_SERVER_PORT) - ps: .\ci\appveyor\docker-bridge.ps1 - choco install -y docker-cli build_script: - ps: if($env:PLATFORM -eq "x64") { $env:CMAKE_GEN_SUFFIX=" Win64" } - cmake "-G%GENERATOR%%CMAKE_GEN_SUFFIX%" -DBUILD_SHARED_LIBS=%BUILD_SHARED_LIBS% -DCRYPTO_BACKEND=%CRYPTO_BACKEND% -H. -B_builds - cmake --build _builds --config "%CONFIGURATION%" before_test: - ps: | Write-Host "Waiting for SSH connection from GitHub Actions" -NoNewline while((Get-Process -Name "sshd" -ErrorAction SilentlyContinue).Count -eq 1) { Write-Host "." -NoNewline Start-Sleep -Seconds 1 } if((Get-Process -Name "sshd" -ErrorAction SilentlyContinue).Count -gt 1) { $env:DOCKER_HOST = "tcp://127.0.0.1:2375" [System.Environment]::SetEnvironmentVariable("DOCKER_HOST", $env:DOCKER_HOST) Write-Host "... ready!" } else { Write-Host "... failed!" } test_script: - ps: $env:OPENSSH_SERVER_IMAGE=[string] (& bash -c "echo ghcr.io/libssh2/ci_tests_openssh_server:$(git rev-parse --short=20 HEAD:tests/openssh_server)") - ps: cd _builds; ctest -VV -C $($env:CONFIGURATION) --output-on-failure on_failure: - ps: if(Test-Path _builds/CMakeFiles/CMakeOutput.log) { cat _builds/CMakeFiles/CMakeOutput.log } - ps: if(Test-Path _builds/CMakeFiles/CMakeError.log) { cat _builds/CMakeFiles/CMakeError.log } on_finish: - ps: | Get-Process -Name "sleep" -ErrorAction SilentlyContinue | Stop-Process Start-Sleep -Seconds 3 Get-Process -Name "sshd" -ErrorAction SilentlyContinue | Stop-Process # whitelist branches to avoid testing feature branches twice (as branch and as pull request) branches: only: - master