libzmq/appveyor.yml
Luca Boccassi df993d113c
Merge pull request #3751 from sigiesec/windows-domain-sockets-signaler
Use Unix domain sockets for listener when available on Windows
2019-12-07 00:25:21 +00:00

338 lines
14 KiB
YAML

version: build-{build}
shallow_clone: true
os: Visual Studio 2013
environment:
CMAKE_GENERATOR: "Visual Studio 12 2013"
MSVCVERSION: "v120"
MSVCYEAR: "vs2013"
ENABLE_DRAFTS: ON
matrix:
- platform: x64
configuration: Release
WITH_LIBSODIUM: ON
ENABLE_CURVE: ON
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
CMAKE_GENERATOR: "Visual Studio 16 2019"
MSVCVERSION: "v142"
MSVCYEAR: "vs2019"
ARTIFACT_NAME: v142-x64
- platform: Win32
configuration: Release
WITH_LIBSODIUM: OFF # unavailable build files for VS2008
ENABLE_CURVE: ON
CMAKE_GENERATOR: "Visual Studio 9 2008"
MSVCVERSION: "v90"
MSVCYEAR: "vs2008"
ARTIFACT_NAME: v90
- platform: Win32
configuration: Release
WITH_LIBSODIUM: ON
ENABLE_CURVE: ON
CMAKE_GENERATOR: "Visual Studio 10 2010"
MSVCVERSION: "v100"
MSVCYEAR: "vs2010"
ARTIFACT_NAME: v100
- platform: Win32
configuration: Release
WITH_LIBSODIUM: ON
ENABLE_CURVE: ON
ARTIFACT_NAME: v120
- platform: x64
configuration: Release
WITH_LIBSODIUM: ON
ENABLE_CURVE: ON
ARTIFACT_NAME: v120-x64
- platform: Win32
configuration: Release
POLLER: epoll
API_POLLER: poll
WITH_LIBSODIUM: ON
ENABLE_CURVE: ON
TEST_OPTIONS: '-E "(test_many_sockets)"'
ARTIFACT_NAME: v120-epoll
- platform: Win32
configuration: Debug
WITH_LIBSODIUM: ON
ENABLE_CURVE: ON
TEST_OPTIONS: '-E "(test_many_sockets)"'
ARTIFACT_NAME: v120-gd
- platform: x64
configuration: Debug
WITH_LIBSODIUM: ON
ENABLE_CURVE: ON
TEST_OPTIONS: '-E "(test_many_sockets)"'
ARTIFACT_NAME: v120-gd-x64
- platform: Win32
configuration: Release
WITH_LIBSODIUM: OFF
ENABLE_CURVE: OFF
ENABLE_DRAFTS: OFF
ARTIFACT_NAME: v120-nocurve
- platform: Win32
configuration: Release
WITH_LIBSODIUM: ON
ENABLE_CURVE: ON
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
CMAKE_GENERATOR: "Visual Studio 14 2015"
MSVCVERSION: "v140"
MSVCYEAR: "vs2015"
ARTIFACT_NAME: v140
- platform: x64
configuration: Release
WITH_LIBSODIUM: ON
ENABLE_CURVE: ON
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
CMAKE_GENERATOR: "Visual Studio 14 2015"
MSVCVERSION: "v140"
MSVCYEAR: "vs2015"
ARTIFACT_NAME: v140-x64
- platform: Win32
configuration: Release
WITH_LIBSODIUM: ON
ENABLE_CURVE: ON
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
CMAKE_GENERATOR: "Visual Studio 15 2017"
MSVCVERSION: "v141"
MSVCYEAR: "vs2017"
TEST_OPTIONS: '-E "(test_many_sockets)"'
ARTIFACT_NAME: v141
- platform: x64
configuration: Release
WITH_LIBSODIUM: ON
ENABLE_CURVE: ON
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
CMAKE_GENERATOR: "Visual Studio 15 2017"
MSVCVERSION: "v141"
MSVCYEAR: "vs2017"
TEST_OPTIONS: '-E "(test_many_sockets)"'
ARTIFACT_NAME: v141-x64
- platform: cygwin64
WITH_LIBSODIUM: OFF
ENABLE_CURVE: ON
CMAKE_GENERATOR: "Unix Makefiles"
ARTIFACT_NAME: cygwin64
- platform: mingw64
WITH_LIBSODIUM: OFF
ENABLE_CURVE: ON
CMAKE_GENERATOR: "MSYS Makefiles"
ARTIFACT_NAME: mingw64
- platform: Win32-uwp
configuration: Debug
WITH_LIBSODIUM: OFF
ENABLE_CURVE: OFF
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
CMAKE_GENERATOR: "Visual Studio 15 2017"
MSVCVERSION: "v141"
MSVCYEAR: "vs2017"
ARTIFACT_NAME: v141-gd-uwp
CMAKE_SYSTEM_NAME: WindowsStore
CMAKE_SYSTEM_VERSION: 10.0.18362
EXTRA_FLAGS: -DCMAKE_SYSTEM_NAME=%CMAKE_SYSTEM_NAME% -DCMAKE_SYSTEM_VERSION=%CMAKE_SYSTEM_VERSION% -DBUILD_TESTS=OFF
- platform: Win32-uwp
configuration: Release
WITH_LIBSODIUM: OFF
ENABLE_CURVE: OFF
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
CMAKE_GENERATOR: "Visual Studio 15 2017"
MSVCVERSION: "v141"
MSVCYEAR: "vs2017"
ARTIFACT_NAME: v141-uwp
CMAKE_SYSTEM_NAME: WindowsStore
CMAKE_SYSTEM_VERSION: 10.0.18362
EXTRA_FLAGS: -DCMAKE_SYSTEM_NAME=%CMAKE_SYSTEM_NAME% -DCMAKE_SYSTEM_VERSION=%CMAKE_SYSTEM_VERSION% -DBUILD_TESTS=OFF
matrix:
fast_finish: false
allow_failures:
- platform: cygwin64 # TODO allow failures until tests are fixed
- platform: mingw64 # TODO allow failures until tests are fixed
init:
- cmd: if "%NO_PR%"=="TRUE" (
if "%APPVEYOR_PULL_REQUEST_NUMBER%" NEQ "" (
echo "Build is disabled for PRs, aborting" &&
appveyor exit
)
)
#- ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
- cmake --version
- msbuild /version
- cmd: reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 0 /f
cache:
- C:\projects\libsodium
- C:\cygwin64\var\cache\setup
install:
- cmd: if "%Platform%"=="cygwin64" C:\cygwin64\setup-x86_64.exe --quiet-mode --no-shortcuts --upgrade-also --packages cmake,cygwin-devel,gcc-g++,libncurses-devel,make,pkg-config
- cmd: if "%Platform%"=="cygwin64" set PATH=C:\cygwin64\bin;%PATH%
- cmd: if "%Platform%"=="mingw64" C:\msys64\usr\bin\bash -lc "pacman -Qg"
- cmd: if "%Platform%"=="mingw64" set PATH=C:\msys64\usr\bin;%PATH%
- cmd: if "%Platform%"=="x64" (if not "%MSVCVERSION%"=="v142" set "CMAKE_GENERATOR=%CMAKE_GENERATOR% Win64")
- cmd: echo "Generator='%CMAKE_GENERATOR%'"
- cmd: echo "Platform='%Platform%'"
- cmd: if "%WITH_LIBSODIUM%"=="ON" set LIBSODIUMDIR=C:\projects\libsodium
- cmd: if "%WITH_LIBSODIUM%"=="ON" (
if not exist "%LIBSODIUMDIR%" (
git clone --branch stable --depth 1 --quiet "https://github.com/jedisct1/libsodium.git" %LIBSODIUMDIR%
) else (
git -C "%LIBSODIUMDIR%" pull
)
)
- cmd: if "%WITH_LIBSODIUM%"=="ON" msbuild /v:minimal /maxcpucount:%NUMBER_OF_PROCESSORS% /p:Configuration=%Configuration%DLL %LIBSODIUMDIR%\builds\msvc\%MSVCYEAR%\libsodium\libsodium.vcxproj
- cmd: if "%WITH_LIBSODIUM%"=="ON" set SODIUM_LIBRARY_DIR="%LIBSODIUMDIR%\bin\%Platform%\%Configuration%\%MSVCVERSION%\dynamic"
- cmd: if "%WITH_LIBSODIUM%"=="ON" set SODIUM_INCLUDE_DIR="%LIBSODIUMDIR%\src\libsodium\include"
- ps: if (${env:WITH_LIBSODIUM} -eq "ON") { Copy-Item "C:\projects\libsodium\bin\${env:Platform}\${env:Configuration}\${env:MSVCVERSION}\dynamic\libsodium.lib" -Destination "C:\projects\libsodium\bin\${env:Platform}\${env:Configuration}\${env:MSVCVERSION}\dynamic\sodium.lib" }
clone_folder: C:\projects\libzmq
before_build:
- cmd: set LIBZMQ_SRCDIR=%cd%
- cmd: set LIBZMQ_BUILDDIR=C:\projects\build_libzmq
# TODO this does not work with sonarcloud.io, as it misses the sonar-cxx plugin
# - cmd: curl -L https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.1.0.1141-windows.zip -o sonar-scanner-cli-3.1.0.1141-windows.zip
# - cmd: unzip sonar-scanner-cli-3.1.0.1141-windows.zip
# - cmd: set BUILDLOG="%LIBZMQ_SRCDIR%\build.log"
- cmd: md "%LIBZMQ_BUILDDIR%"
- cd "%LIBZMQ_BUILDDIR%"
- cmd: if "%PLATFORM%" == "cygwin64" set APPVEYOR_BUILD_FOLDER=/cygdrive/C/projects/libzmq
- cmd: if "%ENABLE_ANALYSIS%"=="ON" ( set LIBZMQ_WERROR="OFF" ) else ( set LIBZMQ_WERROR="ON" )
- cmd: cmake -D CMAKE_INCLUDE_PATH="%SODIUM_INCLUDE_DIR%" -D CMAKE_LIBRARY_PATH="%SODIUM_LIBRARY_DIR%" -D WITH_LIBSODIUM="%WITH_LIBSODIUM%" -D ENABLE_DRAFTS="%ENABLE_DRAFTS%" -D ENABLE_ANALYSIS="%ENABLE_ANALYSIS%" -D ENABLE_CURVE="%ENABLE_CURVE%" -D API_POLLER="%API_POLLER%" -D POLLER="%POLLER%" %EXTRA_FLAGS% -D WITH_LIBSODIUM="%WITH_LIBSODIUM%" -D LIBZMQ_WERROR="%LIBZMQ_WERROR%" -G "%CMAKE_GENERATOR%" "%APPVEYOR_BUILD_FOLDER%"
- cmd: cd "%LIBZMQ_SRCDIR%"
- ps: $env:ZMQ_VERSION_MAJOR = (Select-String -Path .\include\zmq.h -Pattern ".*#define ZMQ_VERSION_MAJOR ([0-9]+).*").Matches.Groups[1].Value
- ps: $env:ZMQ_VERSION_MINOR = (Select-String -Path .\include\zmq.h -Pattern ".*#define ZMQ_VERSION_MINOR ([0-9]+).*").Matches.Groups[1].Value
- ps: $env:ZMQ_VERSION_PATCH = (Select-String -Path .\include\zmq.h -Pattern ".*#define ZMQ_VERSION_PATCH ([0-9]+).*").Matches.Groups[1].Value
- ps: $env:ZMQ_VERSION = "${env:ZMQ_VERSION_MAJOR}.${env:ZMQ_VERSION_MINOR}.${env:ZMQ_VERSION_PATCH}"
- cmd: echo "ZMQ_VERSION is %ZMQ_VERSION%"
build_script:
- cmd: set verbosity=Minimal
- cmd: if "%MSVCYEAR%"=="vs2008" set verbosity=Normal
- cmd: if "%MSVCYEAR%"=="vs2008" set path=C:\Windows\Microsoft.NET\Framework\v3.5;%path%
- cmd: cd "%LIBZMQ_BUILDDIR%"
- cmd: if "%PLATFORM:~0,5%" == "Win32" (
if "%MSVCYEAR%"=="vs2008" (
cmake --build %LIBZMQ_BUILDDIR% --config %configuration% --target install
) else (
cmake --build %LIBZMQ_BUILDDIR% --config %configuration% --target install -- -verbosity:Minimal -maxcpucount -logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
)
)
- cmd: if "%PLATFORM%" == "x64" (
cmake --build %LIBZMQ_BUILDDIR% --config %configuration% --target install -- -verbosity:Minimal -maxcpucount -logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
)
- cmd: if "%PLATFORM%" == "cygwin64" (
cmake --build . -- -j5
)
- cmd: if "%PLATFORM%" == "mingw64" (
cmake --build . -- -j5
)
# TODO this does not work with sonarcloud.io, as it misses the sonar-cxx plugin
# build_script:
# - cmd: msbuild %LIBZMQ_BUILDDIR%\ZeroMQ.sln /verbosity:detailed >%BUILDLOG%
after_build:
# TODO this does not work with sonarcloud.io, as it misses the sonar-cxx plugin
# - cmd: cd "%LIBZMQ_SRCDIR%"
# - cmd: dir
# - cmd: sonar-scanner-3.1.0.1141-windows\bin\sonar-scanner
# -Dsonar.scm.provider=git
# -Dsonar.projectKey=libzmq-msvc
# -Dsonar.organization=sigiesec-github
# -Dsonar.sources=include,src,tests,unittests
# -Dsonar.host.url=https://sonarcloud.io
# -Dsonar.login=%SONARQUBE_TOKEN%
# -Dsonar.cxx.compiler.parser="Visual C++"
# -Dsonar.cxx.compiler.reportPath=build.log
# -Dsonar.cxx.compiler.charset=UTF-8
# -Dsonar.cxx.compiler.regex=^(?<filename>.*)\\((?<line>[0-9]+)\\):\\x20warning\\x20(?<id>C\\d\\d\\d\\d):(?<message>.*)$
# TODO this should be done differently, using the INSTALL cmake target, the current handling depends on the details of the CMakeLists.txt
- cmd: cd %LIBZMQ_BUILDDIR%\bin\%Configuration%"
- cmd: if "%WITH_LIBSODIUM%"=="ON" copy "%SODIUM_LIBRARY_DIR%\libsodium.dll" .
- cmd: copy "%LIBZMQ_SRCDIR%\include\zmq.h" .
- cmd: copy ..\..\lib\%Configuration%\libzmq*.lib . & exit 0
- cmd: 7z a -y -bd -mx=9 libzmq.zip *.exe *.dll *.pdb *.h *.lib
- ps: Push-AppveyorArtifact "libzmq.zip" -Filename "libzmq-${env:ARTIFACT_NAME}-${env:ZMQ_VERSION_MAJOR}_${env:ZMQ_VERSION_MINOR}_${env:ZMQ_VERSION_PATCH}.zip"
test_script:
- cmd: cd "%LIBZMQ_BUILDDIR%"
# TODO run tests in parallel only on selected platforms, since they fail on others, see https://github.com/zeromq/libzmq/issues/3123
- cmd: if "%CMAKE_GENERATOR%"=="Visual Studio 12 2013" set PARALLELIZE=ON
- cmd: if "%CMAKE_GENERATOR%"=="Visual Studio 14 2015" set PARALLELIZE=ON
- cmd: if "%CMAKE_GENERATOR%"=="Visual Studio 12 2013 Win64" set PARALLELIZE=ON
- cmd: if "%CMAKE_GENERATOR%"=="Visual Studio 14 2015 Win64" set PARALLELIZE=ON
- cmd: if not defined TEST_OPTIONS set "TEST_OPTIONS= "
- cmd: if "%PARALLELIZE%"=="ON" (
echo "Running tests in parallel" &&
set TEST_OPTIONS=%TEST_OPTIONS% -j5
)
- cmd: if "%APPVEYOR_REPO_TAG%"=="false" (ctest -C "%Configuration%" -V %TEST_OPTIONS%)
deploy:
- provider: BinTray
username: somdoron
api_key:
secure: B4TC4GvUMbwX13Skh2Kvyc6SnqLkjNS9W0gtN2yxUC2Y4oQSCK2F4eRgtpMpCasg
subject: zeromq
repo: generic
package: libzmq
publish: true
override: true
version: ${ZMQ_VERSION}
on:
APPVEYOR_REPO_TAG: true
# the analysis build is repeated; apparently appveyor only uses the first section that matches some branch
for:
-
branches:
only:
- master
environment:
matrix:
- platform: Win32
configuration: Release
API_POLLER: poll
WITH_LIBSODIUM: ON
ENABLE_CURVE: ON
NO_PR: TRUE
- platform: x64
configuration: Release
WITH_LIBSODIUM: ON
ENABLE_CURVE: ON
NO_PR: TRUE
- platform: Win32
configuration: Release
WITH_LIBSODIUM: ON
ENABLE_CURVE: ON
NO_PR: TRUE
- platform: Win32
configuration: Release
WITH_LIBSODIUM: ON
ENABLE_CURVE: ON
ENABLE_ANALYSIS: ON
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
CMAKE_GENERATOR: "Visual Studio 15 2017"
MSVCVERSION: "v141"
MSVCYEAR: "vs2017"
NO_PR: TRUE
-
branches:
only:
- /.*analyze$/
environment:
matrix:
- platform: Win32
configuration: Release
WITH_LIBSODIUM: ON
ENABLE_CURVE: ON
ENABLE_ANALYSIS: ON
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
CMAKE_GENERATOR: "Visual Studio 15 2017"
MSVCVERSION: "v141"
MSVCYEAR: "vs2017"
NO_PR: TRUE