aboutsummaryrefslogtreecommitdiff
path: root/.travis.yml
blob: 6a1295b4cee326cd7d1c09c3b194d155e67dd52d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# 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