mirror of
https://github.com/open-source-parsers/jsoncpp.git
synced 2024-12-27 11:21:02 +08:00
a3c8e86c0b
1) Improve travis build script for use outside travis. Allow the script used for CI builds to also be used locally in a similar manner to the CI use of the scrips 2) Add ctest compatible testing and CDASH support Report testing and building results to https://my.cdash.org/index.php?project=jsoncpp NOTE: The new ctest infrastructure is not yet robust on winodws Do no yet enable the new features for running test with ctest on windows platform. The previous behaviors are maintainted, but enhance test reporting from windows is not yet supported. 3) Add a cmake coverage testing option Ensure that cmake builds on linux are tested. Ensure that code coverage is reported. 4) Move conditional environment checking into the matrix Avoid multiple places where conditional logic is used to change compiler behavior. As more test environments are created fromt the travis.yml matrix, all settings should be obvious from that one location. 5) Tests with known regressions from the jsonchecker are suppressed Tests that are known to pass with jsoncpp more lenient syntax enforcement are exluded from tests in test/runjsontests.py
78 lines
2.2 KiB
YAML
78 lines
2.2 KiB
YAML
# Build matrix / environment variables are explained on:
|
|
# http://about.travis-ci.org/docs/user/build-configuration/
|
|
# This file can be validated on:
|
|
# http://lint.travis-ci.org/
|
|
# See also
|
|
# http://stackoverflow.com/questions/22111549/travis-ci-with-clang-3-4-and-c11/30925448#30925448
|
|
# to allow C++11, though we are not yet building with -std=c++11
|
|
language: cpp
|
|
sudo: false
|
|
addons:
|
|
homebrew:
|
|
packages:
|
|
- meson
|
|
- ninja
|
|
update: false # do not update homebrew by default
|
|
apt:
|
|
sources:
|
|
#- ubuntu-toolchain-r-test
|
|
- llvm-toolchain-precise-3.5
|
|
packages:
|
|
#- gcc-4.9
|
|
#- g++-4.9
|
|
- clang-3.5
|
|
- valgrind
|
|
matrix:
|
|
allow_failures:
|
|
- os: osx
|
|
include:
|
|
- name: Mac clang meson static release testing
|
|
os: osx
|
|
osx_image: xcode9.4
|
|
compiler: clang
|
|
env:
|
|
CXX="clang++-3.5"
|
|
CC="clang-3.5"
|
|
LIB_TYPE=static
|
|
BUILD_TYPE=release
|
|
script: ./.travis_scripts/meson_builder.sh
|
|
- name: trusty clang meson static release testing
|
|
os: linux
|
|
dist: trusty
|
|
compiler: clang
|
|
env:
|
|
CXX="clang++-3.5"
|
|
CC="clang-3.5"
|
|
LIB_TYPE=static
|
|
BUILD_TYPE=release
|
|
# before_install and install steps only needed for linux meson builds
|
|
before_install:
|
|
- source ./.travis_scripts/travis.before_install.${TRAVIS_OS_NAME}.sh
|
|
install:
|
|
- source ./.travis_scripts/travis.install.${TRAVIS_OS_NAME}.sh
|
|
script: ./.travis_scripts/meson_builder.sh
|
|
- name: xenial gcc cmake coverage
|
|
os: linux
|
|
dist: xenial
|
|
compiler: gcc
|
|
env:
|
|
CXX=g++
|
|
CC=gcc
|
|
DO_Coverage=ON
|
|
BUILD_TOOL="Unix Makefiles"
|
|
BUILD_TYPE=Debug
|
|
LIB_TYPE=shared
|
|
DESTDIR=/tmp/cmake_json_cpp
|
|
script: ./.travis_scripts/cmake_builder.sh
|
|
# Valgrind has too many false positives from the python wrapping. Need a good suppression file
|
|
# - name: xenial gcc cmake coverage
|
|
# os: linux
|
|
# dist: xenial
|
|
# compiler: gcc
|
|
# env: DO_MemCheck=ON CXX=/usr/bin/g++ BUILD_TOOL="Unix Makefiles" BUILD_TYPE=Debug LIB_TYPE=shared DESTDIR=/tmp/cmake_json_cpp
|
|
# script: ./.travis_scripts/cmake_builder.sh
|
|
notifications:
|
|
email: false
|
|
|
|
|