mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2025-02-24 06:48:05 +01:00
Always show the configure and test logs, and upload them as build artifacts, when building for Windows using Appveyor CI. Implements 28459.
78 lines
2.7 KiB
YAML
78 lines
2.7 KiB
YAML
version: 1.0.{build}
|
|
|
|
clone_depth: 50
|
|
|
|
environment:
|
|
compiler: mingw
|
|
|
|
matrix:
|
|
- target: i686-w64-mingw32
|
|
compiler_path: mingw32
|
|
openssl_path: /c/OpenSSL-Win32
|
|
mingw_prefix: mingw-w64-i686
|
|
hardening:
|
|
- target: x86_64-w64-mingw32
|
|
compiler_path: mingw64
|
|
openssl_path: /c/OpenSSL-Win64
|
|
mingw_prefix: mingw-w64-x86_64
|
|
hardening: --disable-gcc-hardening
|
|
|
|
install:
|
|
- ps: >-
|
|
Function Execute-Command ($commandPath)
|
|
{
|
|
& $commandPath $args 2>&1
|
|
if ( $LastExitCode -ne 0 ) {
|
|
$host.SetShouldExit( $LastExitCode )
|
|
}
|
|
}
|
|
Function Execute-Bash ()
|
|
{
|
|
Execute-Command 'c:\msys64\usr\bin\bash' '-e' '-c' $args
|
|
}
|
|
Execute-Command "C:\msys64\usr\bin\pacman" -Sy --needed --noconfirm openssl-devel openssl libevent-devel libevent ${env:mingw_prefix}-libevent ${env:mingw_prefix}-zstd ;
|
|
|
|
build_script:
|
|
- ps: >-
|
|
if ($env:compiler -eq "mingw") {
|
|
$oldpath = ${env:Path} -split ';'
|
|
$buildpath = @("C:\msys64\${env:compiler_path}\bin", "C:\msys64\usr\bin") + $oldpath
|
|
$env:Path = @($buildpath) -join ';'
|
|
$env:build = @("${env:APPVEYOR_BUILD_FOLDER}", $env:target) -join '\'
|
|
Set-Location "${env:APPVEYOR_BUILD_FOLDER}"
|
|
Execute-Bash 'autoreconf -i'
|
|
mkdir "${env:build}"
|
|
Set-Location "${env:build}"
|
|
Execute-Bash "which ${env:target}-gcc"
|
|
Execute-Bash "${env:target}-gcc --version"
|
|
Execute-Bash "../configure --prefix=/${env:compiler_path} --build=${env:target} --host=${env:target} --disable-asciidoc --enable-fatal-warnings --with-openssl-dir=${env:openssl_path} ${env:hardening}"
|
|
Execute-Bash "V=1 make -j2"
|
|
Execute-Bash "V=1 make -j2 install"
|
|
}
|
|
|
|
test_script:
|
|
- ps: >-
|
|
if ($env:compiler -eq "mingw") {
|
|
$oldpath = ${env:Path} -split ';'
|
|
$buildpath = @("C:\msys64\${env:compiler_path}\bin") + $oldpath
|
|
$env:Path = $buildpath -join ';'
|
|
Set-Location "${env:build}"
|
|
Execute-Bash "VERBOSE=1 make -j2 check"
|
|
}
|
|
|
|
on_finish:
|
|
- ps: >-
|
|
if ($env:compiler -eq "mingw") {
|
|
$oldpath = ${env:Path} -split ';'
|
|
$buildpath = @("C:\msys64\usr\bin") + $oldpath
|
|
$env:Path = @($buildpath) -join ';'
|
|
Set-Location "${env:build}"
|
|
Execute-Bash "7z a logs.zip config.log || true"
|
|
Execute-Bash "7z a logs.zip test-suite.log || true"
|
|
Execute-Bash "appveyor PushArtifact logs.zip || true"
|
|
Execute-Bash "tail -1000 config.log || true"
|
|
Execute-Bash "cat test-suite.log || true"
|
|
}
|
|
|
|
on_failure:
|
|
- cmd: C:\Python27\python.exe %APPVEYOR_BUILD_FOLDER%\scripts\test\appveyor-irc-notify.py irc.oftc.net:6697 tor-ci failure
|