mirror of
				https://github.com/facebook/zstd.git
				synced 2025-11-03 00:08:51 -05:00 
			
		
		
		
	that are being transfered to GA in #2758. This represents a saving of ~25mn of cpu time on TravisCI.
		
			
				
	
	
		
			129 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			129 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
# 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
 |