travis: Use script instead of Cmd env
diff --git a/.travis.yml b/.travis.yml
index 8cb40b1..4105c1f 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -4,58 +4,6 @@
dist: trusty
sudo: required
-addons:
- apt:
- update: true
-
-matrix:
- fast_finish: true
- include:
- # Ubuntu 14.04
- - env: Cmd='make test'
-
- - env: Cmd='make gcc6install && CC=gcc-6 CFLAGS=-Werror make -j all
- && make clean && CC=gcc-6 make -j uasan-test-zstd </dev/null' # test when stdin is not a tty
- - env: Cmd='make gcc6install libc6install
- && make clean && CC=gcc-6 make -j uasan-test-zstd32'
- - env: Cmd='make gcc7install && make clean && CC=gcc-7 make -j uasan-test-zstd'
- - env: Cmd='make gcc8install && CC=gcc-8 CFLAGS="-Werror -O3" make -j all'
- - env: Cmd='make clang38install && CC=clang-3.8 make clean msan-test-zstd'
-
- - env: Cmd='make cmakebuild'
-
- - env: Cmd='make staticAnalyze'
-
- - env: Cmd='make gcc6install && CC=gcc-6 make clean uasan-fuzztest'
- - env: Cmd='make gcc6install libc6install
- && make clean && CC=gcc-6 CFLAGS=-m32 make uasan-fuzztest'
- - env: Cmd='make clang38install && CC=clang-3.8 make clean msan-fuzztest'
- - env: Cmd='make clang38install && CC=clang-3.8 make clean tsan-fuzztest'
-
- - env: Cmd='make -j uasanregressiontest
- && make clean && make -j msanregressiontest'
-
- - env: Cmd='make valgrindinstall && make -C tests clean valgrindTest
- && make clean && make -C tests test-fuzzer-stackmode'
-
- - env: Cmd='make arminstall && make armfuzz'
- - env: Cmd='make arminstall && make aarch64fuzz'
- - env: Cmd='make ppcinstall && make ppcfuzz'
- - env: Cmd='make ppcinstall && make ppc64fuzz'
-
- - env: Cmd='make lz4install && make -C tests test-lz4
- && make clean && make -C tests test-pool
- && make clean && bash tests/libzstd_partial_builds.sh'
-
- # tag-specific test
- - if: tag =~ ^v[0-9]\.[0-9]
- env: Cmd='make -C tests checkTag && tests/checkTag $TRAVIS_BRANCH'
-
- - dist: xenial
- env: BUILD_SYSTEM='meson'
- allow_failures:
- - env: BUILD_SYSTEM='meson'
-
git:
depth: 1
@@ -65,29 +13,145 @@
- master
- travisTest
-script:
- - JOB_NUMBER=$(printf '%s' "${TRAVIS_JOB_NUMBER}" | sed -E 's@[0-9]+\.([0-9]+)@\1@')
- - printf 'JOB_NUMBER=%s TRAVIS_BRANCH=%s TRAVIS_EVENT_TYPE=%s TRAVIS_PULL_REQUEST=%s\n'
- "${JOB_NUMBER}" "${TRAVIS_BRANCH}" "${TRAVIS_EVENT_TYPE}" "${TRAVIS_PULL_REQUEST}"
- - if [ "${BUILD_SYSTEM}" = meson ]; then
- set -x;
- sudo apt-get install -qq liblz4-dev valgrind tree
- && curl -o ~/get-pip.py 'https://bootstrap.pypa.io/get-pip.py'
- && python3 ~/get-pip.py --user
- && pip3 install --user meson ninja
- && export CC=clang CXX=clang++
- && meson --buildtype=debug
- -Db_lundef=false
- -Dauto_features=enabled
- -Dbuild_{programs,tests,contrib}=true
- -Ddefault_library=both
- build/meson builddir
- && cd "$_"
- && DESTDIR=./staging ninja install
- && tree ./staging;
- travis_terminate "$?";
- fi
- - export FUZZERTEST=-T2mn;
- export ZSTREAM_TESTTIME=-T2mn;
- export DECODECORPUS_TESTTIME=-T1mn;
- sh -c "${Cmd}" || travis_terminate 1;
+addons:
+ apt:
+ update: true
+
+env:
+ global:
+ - FUZZERTEST=-T2mn
+ ZSTREAM_TESTTIME=-T2mn
+ DECODECORPUS_TESTTIME=-T1mn
+
+# TODO:
+# - Add Coverity job
+# - Ref https://travis-ci.org/systemd/systemd/jobs/461620858/config
+#stages:
+# # Run Coverity periodically instead of for each commit/PR
+# - name: Coverity
+# if: type = cron
+
+matrix:
+ fast_finish: true
+ include:
+ - name: Trusty (Test All)
+ script:
+ - make test
+
+ - name: Trusty (gcc-6 + ASan + UBSan + Test Zstd)
+ script:
+ - make gcc6install
+ - CC=gcc-6 CFLAGS=-Werror make -j all
+ - make clean
+ - CC=gcc-6 make -j uasan-test-zstd </dev/null # test when stdin is not a tty
+ - name: Trusty (gcc-6 + ASan + UBSan + Test Zstd 32bit)
+ script:
+ - make gcc6install libc6install
+ - make clean
+ - CC=gcc-6 make -j uasan-test-zstd32
+ - name: Trusty (gcc-7 + ASan + UBSan + Test Zstd)
+ script:
+ - make gcc7install
+ - make clean
+ - CC=gcc-7 make -j uasan-test-zstd
+ - name: Trusty (gcc-8)
+ script:
+ - make gcc8install
+ - CC=gcc-8 CFLAGS="-Werror -O3" make -j all
+ - name: Trusty (clang-3.8 + MSan + Test Zstd)
+ script:
+ - make clang38install
+ - CC=clang-3.8 make clean msan-test-zstd
+
+ - name: Trusty (CMake)
+ script:
+ - make cmakebuild
+
+ - name: Trusty (Static Analyze)
+ script:
+ - make staticAnalyze
+
+ - name: Trusty (gcc-6 + ASan + UBSan + Fuzz Test)
+ script:
+ - make gcc6install
+ - CC=gcc-6 make clean uasan-fuzztest
+ - name: Trusty (gcc-6 + ASan + UBSan + Fuzz Test 32bit)
+ script:
+ - make gcc6install libc6install
+ - make clean
+ - CC=gcc-6 CFLAGS=-m32 make uasan-fuzztest
+ - name: Trusty (clang-3.8 + MSan + Fuzz Test)
+ script:
+ - make clang38install
+ - CC=clang-3.8 make clean msan-fuzztest
+ - name: Trusty (clang-3.8 + TSan + Fuzz Test)
+ script:
+ - make clang38install
+ - CC=clang-3.8 make clean tsan-fuzztest
+
+ - name: Trusty (ASan + UBSan + MSan + Regression Test)
+ script:
+ - make -j uasanregressiontest
+ - make clean
+ - make -j msanregressiontest
+
+ - name: Trusty (Valgrind + Fuzz Test Stack Mode)
+ script:
+ - make valgrindinstall
+ - make -C tests clean valgrindTest
+ - make clean
+ - make -C tests test-fuzzer-stackmode
+
+ - name: Trusty (ARM + Fuzz Test)
+ script:
+ - make arminstall
+ - make armfuzz
+ - name: Trusty (AARCH64 + Fuzz Test)
+ script:
+ - make arminstall
+ - make aarch64fuzz
+ - name: Trusty (PPC + Fuzz Test)
+ script:
+ - make ppcinstall
+ - make ppcfuzz
+ - name: Trusty (PPC64 + Fuzz Test)
+ script:
+ - make ppcinstall
+ - make ppc64fuzz
+
+ - name: Trusty (LZ4)
+ script:
+ - make lz4install
+ - make -C tests test-lz4
+ - make clean
+ - make -C tests test-pool
+ - make clean
+ - bash tests/libzstd_partial_builds.sh
+
+ - name: Tag-Specific Test
+ if: tag =~ ^v[0-9]\.[0-9]
+ script:
+ - make -C tests checkTag
+ - tests/checkTag "$TRAVIS_BRANCH"
+
+ - name: Xenial (Meson + clang)
+ dist: xenial
+ language: cpp
+ compiler: clang
+ before_install:
+ - sudo apt-get install -qq liblz4-dev valgrind tree
+ - curl -o ~/get-pip.py 'https://bootstrap.pypa.io/get-pip.py'
+ - python3 ~/get-pip.py --user
+ - pip3 install --user meson ninja
+ script:
+ - meson --buildtype=debug
+ -Db_lundef=false
+ -Dauto_features=enabled
+ -Dbuild_{programs,tests,contrib}=true
+ -Ddefault_library=both
+ build/meson builddir
+ - cd builddir
+ - DESTDIR=./staging ninja install
+ - tree ./staging
+ allow_failures:
+ - name: Xenial (Meson + clang)