Skip to content
Snippets Groups Projects
.travis.yml 2.78 KiB
sudo: false
services:
  - docker

language: cpp

# default values
os: linux
compiler: gcc

osx_image: xcode9

cache:
    directories:
      - $HOME/.cache

git:
    depth: 100500

matrix:
    allow_failures:
      - TARGET=coverage
    include:
      - name: Create and deploy tarball
        env: TARGET=source
      - name: RelWithDebInfoWError build + test (Linux, gcc)
        env: TARGET=test
      - name: RelWithDebInfoWError build + test (Linux, clang)
        env: TARGET=test
        compiler: clang
      - name: RelWithDebInfoWError build + test (OS X)
        env: TARGET=test
        os: osx
      - name: Debug build + test + coverage (Linux, gcc)
        env: TARGET=coverage
      - name: LTO build + test (Linux, gcc)
        env: TARGET=test CMAKE_EXTRA_PARAMS=-DENABLE_LTO=ON
      - name: LTO build + test (Linux, clang)
        env: TARGET=test CMAKE_EXTRA_PARAMS=-DENABLE_LTO=ON
        compiler: clang
      - name: LTO build + test (OS X)
        os: osx
        env: TARGET=test CMAKE_EXTRA_PARAMS=-DENABLE_LTO=ON
      - name: CentOS 6 build + test + deploy RPM
        env: OS=el DIST=6
      - name: CentOS 7 build + test + deploy RPM
        env: OS=el DIST=7
      - name: Fedora 26 build + test + deploy RPM
        env: OS=fedora DIST=26
      - name: Fedora 27 build + test + deploy RPM
        env: OS=fedora DIST=27
      - name: Ubuntu Trusty (14.04) build + deploy DEB
        env: OS=ubuntu DIST=trusty
      - name: Ubuntu Xenial (16.04) build + deploy DEB
        env: OS=ubuntu DIST=xenial
      - name: Ubuntu Artful (17.10) build + deploy DEB
        env: OS=ubuntu DIST=artful
      - name: Ubuntu Bionic (18.04) build + deploy DEB
        env: OS=ubuntu DIST=bionic
      - name: Ubuntu Cosmic (18.10) build + deploy DEB
        env: OS=ubuntu DIST=cosmic
      - name: Debian Wheezy (7) build + deploy DEB
        env: OS=debian DIST=wheezy
      - name: Debian Jessie (8) build + deploy DEB
        env: OS=debian DIST=jessie
      - name: Debian Stretch (9) build + deploy DEB
        env: OS=debian DIST=stretch

script:
  - make -f .travis.mk ${TARGET}

before_deploy:
  - ls -l build/

deploy:
  # Deploy packages to PackageCloud
  - provider: packagecloud
    username: "tarantool"
    repository: "2x"
    token: "${PACKAGECLOUD_TOKEN}"
    dist: "${OS}/${DIST}"
    package_glob: build/*.{rpm,deb,dsc}
    skip_cleanup: true
    on:
      repo: tarantool/tarantool
      branch: "2.1"
      condition: -n "${OS}" && -n "${DIST}" && -n "${PACKAGECLOUD_TOKEN}"
  # Deploy source tarballs to S3
  - provider: script
    script: make -f .travis.mk source_deploy
    skip_cleanup: true
    on:
      repo: tarantool/tarantool
      branch: "2.1"
      condition: "x${TARGET} = xsource"

notifications:
  email:
    recipients:
      - build@tarantool.org
    on_success: change
    on_failure: always