summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJakub Jirutka <jakub@jirutka.cz>2018-02-09 00:03:44 +0100
committerNico Williams <nico@cryptonector.com>2018-02-20 12:11:28 -0500
commitc163e88af3b84cee9d98b8ea259ad5ee422dcc03 (patch)
tree0655d847a2fa175527fa1a4906320202c54d7eb5
parentbd34b8dd2e441440928bfd51bfbfa5facb424557 (diff)
Change Travis config to utilize Build Stages
See: https://docs.travis-ci.com/user/build-stages/
-rw-r--r--.travis.yml192
1 files changed, 107 insertions, 85 deletions
diff --git a/.travis.yml b/.travis.yml
index 8bc814de..fa262b47 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,93 +1,115 @@
-os:
- - linux
- - osx
-
sudo: false
language: c
-compiler:
- - gcc
- - clang
-
-matrix:
+jobs:
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
+ # Build with gcc and run tests on Ubuntu.
+ - &test-ubuntu
+ stage: test
+ os: linux
+ compiler: gcc
+
+ addons:
+ apt:
+ packages:
+ - valgrind
+ - bison
+ - automake
+
+ before_install:
+ - uname -s
+ - 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_failure:
+ - cat test-suite.log
+ - cat tests/*.log
+
+
+ # Build with clang and run tests on Ubuntu.
+ - <<: *test-ubuntu
+ compiler: clang
+
+
+ # Build with gcc and run tests with gcov on Ubuntu.
+ - <<: *test-ubuntu
+ env: COVERAGE="--disable-valgrind --enable-gcov"
+
+ after_script:
+ - 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
+
+
+ # Build with gcc and run tests on macOS.
+ - &test-osx
+ <<: *test-ubuntu
+ os: osx
+
+ before_install:
+ - uname -s
+ - brew update
+ - brew install flex
+ - brew install bison
+ - 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
+ - if [ -n "$COVERAGE" ]; then pip install --user cpp-coveralls; fi
+
+
+ # Build with clang and run tests on macOS.
+ - <<: *test-osx
+ compiler: clang
notifications:
email: false