libvips/.travis.yml

154 lines
4.4 KiB
YAML
Raw Normal View History

2014-05-19 13:54:04 +02:00
language: cpp
env:
global:
- PYTHON=python3
- PYVIPS_VERSION=master
2019-01-02 11:42:17 +01:00
addons:
apt:
update: true
sources: &common_sources
2019-02-17 20:51:01 +01:00
# add support for HEIF files
- sourceline: 'ppa:strukturag/libheif'
- sourceline: 'ppa:strukturag/libde265'
packages: &common_packages
- gtk-doc-tools
2019-01-02 11:42:17 +01:00
- gobject-introspection
- python3-pip
- python3-setuptools
- python3-wheel
- libfftw3-dev
- libexif-dev
2019-01-02 11:42:17 +01:00
- libjpeg-turbo8-dev
2020-07-14 18:51:22 +02:00
- libpng-dev
2019-01-02 11:42:17 +01:00
- libwebp-dev
- libtiff5-dev
2019-02-17 20:51:01 +01:00
- libheif-dev
2019-01-02 11:42:17 +01:00
- libexpat1-dev
2020-07-14 18:51:22 +02:00
- libcfitsio-dev
- libgsl-dev
2019-01-02 11:42:17 +01:00
- libmatio-dev
2020-07-14 18:51:22 +02:00
- libnifti-dev
2019-01-02 11:42:17 +01:00
- liborc-0.4-dev
- liblcms2-dev
- libpoppler-glib-dev
- librsvg2-dev
2019-01-02 11:42:17 +01:00
- libgif-dev
- libopenexr-dev
- libpango1.0-dev
- libgsf-1-dev
2019-01-02 11:42:17 +01:00
- libopenslide-dev
- libffi-dev
homebrew:
packages:
- ccache
- gtk-doc
- gobject-introspection
- fftw
- libexif
- libjpeg-turbo
2019-01-02 11:42:17 +01:00
- webp
- imagemagick
- cfitsio
- gsl
- libmatio
- orc
- little-cms2
- poppler
- librsvg
- openexr
- pango
- libgsf
- openslide
jobs:
allow_failures:
- os: osx
fast_finish: true
include:
2020-07-14 18:51:22 +02:00
- stage: "Test Linux"
os: linux
dist: bionic
compiler: gcc
2020-07-14 18:51:22 +02:00
name: "Ubuntu 18.04 / GCC 7.4.0"
addons:
apt:
packages:
- *common_packages
- libmagick++-dev
env:
- JPEG=/usr
- JOBS=`nproc`
- WITH_MAGICK=yes
cache: ccache
- os: linux
2020-07-14 18:51:22 +02:00
dist: bionic
compiler: clang
2020-07-14 18:51:22 +02:00
name: "Ubuntu 18.04 / Clang 10 with ASan and UBSan"
addons:
apt:
sources:
- *common_sources
2020-07-14 18:51:22 +02:00
- sourceline: deb https://apt.llvm.org/bionic/ llvm-toolchain-bionic-10 main
key_url: https://apt.llvm.org/llvm-snapshot.gpg.key
packages:
- *common_packages
- clang-10
- libomp-10-dev
env:
- JPEG=/usr
- JOBS=`nproc`
- WITH_MAGICK=no
2020-07-14 18:51:22 +02:00
- CC="clang-10"
- CXX="clang++-10"
- LDSHARED="$CC -shared"
- CFLAGS="-fsanitize=address,undefined -fno-omit-frame-pointer -fopenmp -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION"
2020-07-14 18:51:22 +02:00
- CXXFLAGS="$CFLAGS"
- LDFLAGS="-fsanitize=address,undefined -shared-libasan -fopenmp=libomp"
2020-07-14 18:51:22 +02:00
- ASAN_DSO=`$CC -print-file-name=libclang_rt.asan-x86_64.so`
- ASAN_SYMBOLIZER_PATH=`which llvm-symbolizer-10`
- ASAN_OPTIONS="suppressions=$TRAVIS_BUILD_DIR/suppressions/asan.supp"
- LSAN_OPTIONS="suppressions=$TRAVIS_BUILD_DIR/suppressions/lsan.supp"
2020-07-14 18:51:22 +02:00
- UBSAN_OPTIONS="suppressions=$TRAVIS_BUILD_DIR/suppressions/ubsan.supp:print_stacktrace=1"
- LD_LIBRARY_PATH="/usr/lib/llvm-10/lib:`dirname $ASAN_DSO`"
- DLCLOSE_PRELOAD="$TRAVIS_BUILD_DIR/dlclose.so"
2020-07-14 18:51:22 +02:00
before_script:
# workaround for https://github.com/google/sanitizers/issues/89
# otherwise libIlmImf-2_2.so ends up as <unknown module>
2020-07-14 18:51:22 +02:00
- echo -e '#include <stdio.h>\nint dlclose(void*handle){return 0;}' | $CC -shared -xc -odlclose.so -
cache: ccache
2020-07-14 18:51:22 +02:00
- stage: "Test macOS"
os: osx
osx_image: xcode11
2020-07-14 18:51:22 +02:00
name: "macOS 10.14.6 / GCC 9"
env:
- JPEG=/usr/local/opt/jpeg-turbo
- JOBS="`sysctl -n hw.ncpu`"
- WITH_MAGICK=yes
- PATH="/usr/local/opt/ccache/libexec:$PATH"
- PKG_CONFIG_PATH="/usr/local/opt/jpeg-turbo/lib/pkgconfig:/usr/local/opt/libxml2/lib/pkgconfig:$PKG_CONFIG_PATH"
- HOMEBREW_NO_AUTO_UPDATE=1
- CC="gcc-9"
- CXX="g++-9"
cache: ccache
2020-07-14 18:51:22 +02:00
install:
- $PYTHON -m pip download --no-deps https://github.com/libvips/pyvips/archive/$PYVIPS_VERSION.tar.gz
- tar xf $PYVIPS_VERSION.tar.gz
- $PYTHON -m pip install --user --upgrade pyvips-$PYVIPS_VERSION/[test]
- ./autogen.sh
--disable-dependency-tracking
--disable-deprecated
--with-jpeg-includes=$JPEG/include
--with-jpeg-libraries=$JPEG/lib
--with-magick=$WITH_MAGICK
- make -j$JOBS -s
script:
- make -j$JOBS -s -k V=0 VERBOSE=1 check
2020-07-14 18:51:22 +02:00
- LD_LIBRARY_PATH="$PWD/libvips/.libs:$LD_LIBRARY_PATH"
DYLD_LIBRARY_PATH=$PWD/libvips/.libs
LD_PRELOAD="$ASAN_DSO $DLCLOSE_PRELOAD"
$PYTHON -m pytest -sv --log-cli-level=WARNING test/test-suite