os: - linux - osx sudo: false language: c compiler: - gcc - clang matrix: include: - compiler: gcc env: COVERAGE="--disable-valgrind --enable-gcov" os: linux addons: apt: packages: - valgrind - bison - automake before_install: - echo "$TRAVIS_OS_NAME" - uname -s - brew update || true; brew install flex || true; brew install bison || true; - rm src/{lexer,parser}.{c,h} - sed -i.bak '/^AM_INIT_AUTOMAKE(\[-Wno-portability 1\.14\])$/s/14/11/' modules/oniguruma/configure.ac install: - bundle install --gemfile=docs/Gemfile - wget http://ftp.debian.org/debian/pool/main/b/bison/bison_3.0.2.dfsg-2_amd64.deb - ar p bison_3.0.2.dfsg-2_amd64.deb data.tar.xz | tar xJ - if [ -n "$COVERAGE" ]; then pip install --user cpp-coveralls; fi before_script: # If this is OS X we'll get bison from brew, else we'll get bison # from the .deb unpacked above in the install section. - PATH=/usr/local/opt/bison/bin:$PWD/usr/bin:$PATH - echo SHELL=$SHELL - echo PATH=$PATH - which bison - bison --version - autoreconf -if - ./configure --with-oniguruma=builtin YACC="$(which bison) -y" $COVERAGE script: # When using the bison from Debian we need to tell that bison where # to find its data. Yay non-relocatable code. Not. - echo PATH=$PATH - which bison - make BISON_PKGDATADIR=$PWD/usr/share/bison src/parser.c || make src/parser.c # Make dist! # # Make it first to fail the build early, before we test with # valgrind. - make dist # Build and test the dist (without valgrind) - | ( tar xvf jq-`scripts/version`.tar.gz && cd jq-`scripts/version` && pwd && ./configure --disable-valgrind --with-oniguruma=builtin YACC="$(which bison) -y" $COVERAGE && make BISON_PKGDATADIR=$PWD/usr/share/bison src/parser.c || make src/parser.c && make -j4 && make check -j4 || true ) # Build and test the HEAD - make -j4 - make check -j4 after_script: - | if [ -n "$COVERAGE" ]; then rm -rf src/.libs # don't care about coverage for libjq coveralls --gcov-options '\-lp' \ -e src/lexer.c -e src/parser.c -e src/jv_dtoa.c fi after_failure: - cat test-suite.log - cat tests/*.log notifications: email: false