mirror of
https://github.com/zeromq/libzmq.git
synced 2025-01-13 17:27:57 +08:00
8f66156aa3
Solution: don't run tests on tags This doesn't break anything, as tags was not built until now. Anyway, when building tags we really care about the release of the packages and not tests
279 lines
12 KiB
YAML
279 lines
12 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: 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: 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: 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: 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
|
|
|
|
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" 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%" == "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>.*)$
|
|
- 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: 7z a -y -bd -mx=9 libzmq.zip *.exe *.dll *.pdb *.h
|
|
- 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: GTpnqv6RB1urgspx4kTsUDksN2Vaow/x4kFJKmUX4zFjMDUlBsRUCrpFBiedYb33
|
|
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
|