| 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; |
| - rvm install ruby-1.9.3-p551 |
| - rvm use 1.9.3 |
| - 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 |
| |