128 lines
3.5 KiB
YAML
Executable file
128 lines
3.5 KiB
YAML
Executable file
# Travis CI is used to test platforms that github-actions currently doesn't support
|
|
# without either self-hosting or some finnicky work-around. Also, some tests
|
|
# are troublesome to migrate since GH Actions runs tests not in a tty.
|
|
language: c
|
|
|
|
git:
|
|
depth: 1
|
|
|
|
branches:
|
|
only:
|
|
- dev
|
|
- release
|
|
- master
|
|
- travisTest
|
|
|
|
addons:
|
|
apt:
|
|
update: true
|
|
|
|
env:
|
|
global:
|
|
- FUZZERTEST=-T1mn
|
|
ZSTREAM_TESTTIME=-T1mn
|
|
DECODECORPUS_TESTTIME=-T1mn
|
|
|
|
matrix:
|
|
fast_finish: true
|
|
include:
|
|
- name: S390X (big endian) + Fuzz test
|
|
dist: trusty
|
|
arch: s390x
|
|
script:
|
|
- FUZZER_FLAGS=--no-big-tests make -C tests fuzztest
|
|
|
|
- name: S390X (big endian) + Fuzz test + no intrinsics
|
|
dist: trusty
|
|
arch: s390x
|
|
script:
|
|
- MOREFLAGS="-DZSTD_NO_INTRINSICS" FUZZER_FLAGS=--no-big-tests make -C tests fuzztest
|
|
|
|
- name: arm64 # ~2.5 mn
|
|
os: linux
|
|
arch: arm64
|
|
script:
|
|
- make check
|
|
|
|
- name: arm64fuzz
|
|
os: linux
|
|
arch: arm64
|
|
script:
|
|
- make -C tests fuzztest
|
|
|
|
# TODO: migrate to GH Actions once newest clang staticanalyze warnings are fixed
|
|
- name: static analyzer scanbuild # ~8mn
|
|
dist: trusty # note : it's important to pin down a version of static analyzer, since different versions report different false positives
|
|
script:
|
|
- make staticAnalyze
|
|
|
|
# GH actions can't run this command on OS-X, non-tty issues
|
|
- name: OS-X make all lib
|
|
os: osx
|
|
script:
|
|
- make -C lib all
|
|
|
|
# Introduced to check compat with old toolchains, to prevent e.g. #1872
|
|
- name: ARM Build Test (on Trusty)
|
|
dist: trusty
|
|
script:
|
|
- make arminstall
|
|
- make armbuild
|
|
|
|
# check release number (release/new tag only)
|
|
- name: Tag-Specific Test
|
|
if: tag =~ ^v[0-9]\.[0-9]
|
|
script:
|
|
- make -C tests checkTag
|
|
- tests/checkTag "$TRAVIS_BRANCH"
|
|
|
|
- name: PPC64LE + Fuzz test # ~13mn
|
|
arch: ppc64le
|
|
env:
|
|
- FUZZER_FLAGS=--no-big-tests
|
|
- MOREFLAGS="-static"
|
|
script:
|
|
- cat /proc/cpuinfo
|
|
- make -C tests fuzztest
|
|
|
|
# This test currently fails on GA specifically, for no obvious reason
|
|
# (it works fine on travisCI, and on local test platforms).
|
|
- name: Versions Compatibility Test # ~6mn
|
|
script:
|
|
- make -C tests versionsTest
|
|
|
|
# meson dedicated test
|
|
- name: Xenial (Meson + clang) # ~15mn
|
|
dist: bionic
|
|
language: cpp
|
|
compiler: clang
|
|
install:
|
|
- sudo apt-get install -qq liblz4-dev valgrind tree
|
|
- |
|
|
travis_retry curl -o ~/ninja.zip -L 'https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-linux.zip' &&
|
|
unzip ~/ninja.zip -d ~/.local/bin
|
|
- |
|
|
travis_retry curl -o ~/get-pip.py -L 'https://bootstrap.pypa.io/get-pip.py' &&
|
|
python3 ~/get-pip.py --user &&
|
|
pip3 install --user meson
|
|
script:
|
|
- |
|
|
meson setup \
|
|
--buildtype=debugoptimized \
|
|
-Db_lundef=false \
|
|
-Dauto_features=enabled \
|
|
-Dbin_programs=true \
|
|
-Dbin_tests=true \
|
|
-Dbin_contrib=true \
|
|
-Ddefault_library=both \
|
|
build/meson builddir
|
|
- pushd builddir
|
|
- ninja
|
|
- meson test --verbose --no-rebuild
|
|
- DESTDIR=./staging ninja install
|
|
- tree ./staging
|
|
after_failure:
|
|
- cat "$TRAVIS_BUILD_DIR"/builddir/meson-logs/testlog.txt
|
|
|
|
allow_failures:
|
|
- env: ALLOW_FAILURES=true
|