mirror of
https://github.com/nlohmann/json.git
synced 2026-10-06 06:30:31 +00:00
The VS 2017 jobs hit AppVeyor's 60-minute limit per job while still compiling the tests (77 of about 108 test targets after 58 minutes). They pass /std:c++17 for everything anyway, so build only the C++17 variant of each test (JSON_TestStandards=17), and split the unit test files across two jobs each with the new JSON_TestShard=<index>/<count> option, which keeps every <count>-th test file starting at <index>. The extra variants of single test files are built in shard 0 only. CMAKE_OPTIONS is no longer quoted in appveyor.yml, so that it can hold more than one option. Signed-off-by: Niels Lohmann <mail@nlohmann.me>
96 lines
3.2 KiB
YAML
96 lines
3.2 KiB
YAML
version: '{build}'
|
|
|
|
# only build PRs and commits to develop branch
|
|
# (see https://help.appveyor.com/discussions/questions/55079-two-builds-per-commit-to-pull-request)
|
|
branches:
|
|
only:
|
|
- develop
|
|
|
|
only_commits:
|
|
files:
|
|
- .github/external_ci/appveyor.yml
|
|
- cmake/
|
|
- include/
|
|
- tests/
|
|
- CMakeLists.txt
|
|
|
|
environment:
|
|
matrix:
|
|
# The Visual Studio 2017 jobs compile everything with /std:c++17, so they
|
|
# only build the C++17 variant of each test, split into two jobs each to
|
|
# stay below AppVeyor's 60-minute limit per job.
|
|
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
|
configuration: Debug
|
|
platform: x86
|
|
CXX_FLAGS: "/W4 /WX"
|
|
CMAKE_OPTIONS: ""
|
|
GENERATOR: Visual Studio 14 2015
|
|
|
|
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
|
configuration: Release
|
|
platform: x86
|
|
CXX_FLAGS: "/W4 /WX"
|
|
CMAKE_OPTIONS: ""
|
|
GENERATOR: Visual Studio 14 2015
|
|
|
|
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
|
configuration: Release
|
|
platform: x86
|
|
CXX_FLAGS: "/permissive- /std:c++17 /utf-8 /W4 /WX"
|
|
CMAKE_OPTIONS: "-DJSON_TestStandards=17 -DJSON_TestShard=0/2"
|
|
GENERATOR: Visual Studio 15 2017
|
|
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
|
configuration: Release
|
|
platform: x86
|
|
CXX_FLAGS: "/permissive- /std:c++17 /utf-8 /W4 /WX"
|
|
CMAKE_OPTIONS: "-DJSON_TestStandards=17 -DJSON_TestShard=1/2"
|
|
GENERATOR: Visual Studio 15 2017
|
|
|
|
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
|
|
configuration: Release
|
|
platform: x86
|
|
CXX_FLAGS: "/W4 /WX"
|
|
CMAKE_OPTIONS: "-DJSON_ImplicitConversions=OFF"
|
|
GENERATOR: Visual Studio 16 2019
|
|
|
|
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
|
configuration: Release
|
|
platform: x64
|
|
CXX_FLAGS: "/W4 /WX"
|
|
CMAKE_OPTIONS: ""
|
|
GENERATOR: Visual Studio 14 2015
|
|
|
|
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
|
configuration: Release
|
|
platform: x64
|
|
CXX_FLAGS: "/permissive- /std:c++17 /Zc:__cplusplus /utf-8 /W4 /WX"
|
|
CMAKE_OPTIONS: "-DJSON_TestStandards=17 -DJSON_TestShard=0/2"
|
|
GENERATOR: Visual Studio 15 2017
|
|
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
|
configuration: Release
|
|
platform: x64
|
|
CXX_FLAGS: "/permissive- /std:c++17 /Zc:__cplusplus /utf-8 /W4 /WX"
|
|
CMAKE_OPTIONS: "-DJSON_TestStandards=17 -DJSON_TestShard=1/2"
|
|
GENERATOR: Visual Studio 15 2017
|
|
|
|
init:
|
|
- cmake --version
|
|
- msbuild /version
|
|
|
|
install:
|
|
- if "%platform%"=="x86" set GENERATOR_PLATFORM=Win32
|
|
|
|
before_build:
|
|
- cmake . -G "%GENERATOR%" -A "%GENERATOR_PLATFORM%" -DCMAKE_CXX_FLAGS="%CXX_FLAGS%" -DCMAKE_IGNORE_PATH="C:/Program Files/Git/usr/bin" -DJSON_BuildTests=On %CMAKE_OPTIONS%
|
|
|
|
build_script:
|
|
- cmake --build . --config "%configuration%" --parallel 2
|
|
|
|
test_script:
|
|
- if "%configuration%"=="Release" ctest -C "%configuration%" --parallel 2 --output-on-failure
|
|
# On Debug builds, skip test-unicode_all
|
|
# as it is extremely slow to run and cause
|
|
# occasional timeouts on AppVeyor.
|
|
# More info: https://github.com/nlohmann/json/pull/1570
|
|
- if "%configuration%"=="Debug" ctest --exclude-regex "test-unicode" -C "%configuration%" --parallel 2 --output-on-failure
|