forked from libssh2/libssh2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
appveyor.yml
122 lines (103 loc) · 4.2 KB
/
appveyor.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# 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: cd _builds
- ps: 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