language: go

sudo: required
dist: trusty

go:
  - 1.6
  - 1.7
  - tip

env:
  - LIBVIPS=7.42
  - LIBVIPS=8.2
  - LIBVIPS=8.3
  - LIBVIPS=8.4
  - LIBVIPS=master

matrix:
  allow_failures:
    - env: LIBVIPS=7.42
    - env: LIBVIPS=8.2
    - env: LIBVIPS=8.3

cache: apt

addons:
  apt:
    packages:
      - gobject-introspection
      - gtk-doc-tools
      - libcfitsio3-dev
      - libfftw3-dev
      - libgif-dev
      - libgs-dev
      - libgsf-1-dev
      - libmatio-dev
      - libopenslide-dev
      - liborc-0.4-dev
      - libpango1.0-dev
      - libpoppler-glib-dev
      - libwebp-dev

# VIPS 8.3.3 requires Poppler 0.30 which is not released on Trusty.
before_install:
  - wget https://github.com/jcupitt/libvips/archive/$LIBVIPS.zip
  - unzip $LIBVIPS
  - cd libvips-$LIBVIPS
  - test -f autogen.sh && ./autogen.sh || ./bootstrap.sh
  - >
    CXXFLAGS=-D_GLIBCXX_USE_CXX11_ABI=0
    ./configure
    --disable-debug
    --disable-dependency-tracking
    --disable-introspection
    --disable-static
    --enable-gtk-doc-html=no
    --enable-gtk-doc=no
    --enable-pyvips8=no
    --without-orc
    --without-python
    $1
  - make
  - sudo make install
  - sudo ldconfig
  - cd ..

before_script:
  - go get -u github.com/golang/lint/golint

script:
  - diff -u <(echo -n) <(gofmt -s -d ./)
  - diff -u <(echo -n) <(go vet ./)
  - diff -u <(echo -n) <(golint ./)
  - go test -v -race -covermode=atomic -coverprofile=coverage.out

after_success:
  - goveralls -coverprofile=coverage.out -service=travis-ci
