169 lines
4.2 KiB
YAML
169 lines
4.2 KiB
YAML
language: cpp
|
|
sudo: true
|
|
cache: apt
|
|
dist: trusty
|
|
group: deprecated-2017Q3
|
|
addons:
|
|
apt:
|
|
sources: &apt_sources
|
|
- ubuntu-toolchain-r-test
|
|
- sourceline: 'ppa:kalakris/cmake' # cmake 2.8 for precise
|
|
- sourceline: 'ppa:adrozdoff/cmake' # cmake 3 for trusty
|
|
- sourceline: 'ppa:h-rayflood/llvm'
|
|
- sourceline: ppa:hvr/z3 # z3 for the smt interface package
|
|
packages: &default_packages
|
|
- cmake
|
|
- libgmp-dev
|
|
- libgoogle-perftools-dev
|
|
- g++-4.9
|
|
- clang-3.4
|
|
|
|
matrix:
|
|
include:
|
|
- os: linux
|
|
dist: precise
|
|
env:
|
|
CMAKE_CXX_COMPILER=g++-4.9
|
|
CMAKE_BUILD_TYPE=Release
|
|
UPLOAD=ON
|
|
STATIC=ON
|
|
|
|
- os: linux
|
|
env:
|
|
CMAKE_CXX_COMPILER=clang++-3.4
|
|
CMAKE_BUILD_TYPE=Release
|
|
LEAN_EXTRA_MAKE_OPTS=-t0
|
|
TCMALLOC=ON
|
|
|
|
- os: linux
|
|
addons: &gcc6_addons
|
|
apt:
|
|
sources: *apt_sources
|
|
packages:
|
|
- *default_packages
|
|
- g++-6
|
|
- gcc-6
|
|
env:
|
|
CMAKE_CXX_COMPILER=g++-6
|
|
CMAKE_BUILD_TYPE=Release
|
|
TCMALLOC=ON
|
|
|
|
- os: linux
|
|
addons: *gcc6_addons
|
|
env:
|
|
CMAKE_CXX_COMPILER=g++-6
|
|
CMAKE_BUILD_TYPE=Release
|
|
TESTCOV=ON
|
|
|
|
- os: linux
|
|
addons: *gcc6_addons
|
|
env:
|
|
CMAKE_CXX_COMPILER=g++-6
|
|
CMAKE_BUILD_TYPE=Release
|
|
MULTI_THREAD=OFF
|
|
|
|
- os: linux
|
|
addons:
|
|
apt:
|
|
sources: *apt_sources
|
|
packages:
|
|
- *default_packages
|
|
- z3
|
|
env:
|
|
CMAKE_CXX_COMPILER=g++-4.9
|
|
CMAKE_BUILD_TYPE=Release
|
|
TEST=OFF
|
|
TEST_LEANPKG_REGISTRY=ON
|
|
|
|
- os: linux
|
|
env:
|
|
CMAKE_CXX_COMPILER=clang++-3.4
|
|
CMAKE_BUILD_TYPE=Debug
|
|
TCMALLOC=ON
|
|
|
|
- os: linux
|
|
dist: precise
|
|
env:
|
|
CMAKE_CXX_COMPILER=g++-4.9
|
|
CMAKE_BUILD_TYPE=Debug
|
|
|
|
- os: osx
|
|
env:
|
|
CMAKE_CXX_COMPILER=clang++
|
|
CMAKE_BUILD_TYPE=Release
|
|
UPLOAD=ON
|
|
TEST_LEANPKG_REGISTRY=ON
|
|
|
|
- os: osx
|
|
env:
|
|
CMAKE_CXX_COMPILER=g++
|
|
CMAKE_BUILD_TYPE=Debug
|
|
|
|
before_install:
|
|
- |
|
|
if [[ $TRAVIS_OS_NAME == osx ]]; then
|
|
brew update &&
|
|
(brew install gcc || brew link --overwrite gcc) &&
|
|
brew install gmp &&
|
|
# workaround for https://github.com/travis-ci/travis-ci/issues/6307
|
|
command curl -sSL https://rvm.io/mpapis.asc | gpg --import -
|
|
rvm get head || true
|
|
fi
|
|
|
|
script:
|
|
- set -e
|
|
- mkdir -p build
|
|
- cd build
|
|
- if [[ $TESTCOV != ON ]]; then TESTCOV=OFF; fi
|
|
- if [[ $TCMALLOC != ON ]]; then TCMALLOC=OFF; fi
|
|
- if [[ $STATIC != ON ]]; then STATIC=OFF; fi
|
|
- if [[ $MULTI_THREAD != OFF ]]; then MULTI_THREAD=ON; fi
|
|
- OPTIONS=""
|
|
- if [[ $TRAVIS_EVENT_TYPE == cron ]]; then
|
|
git fetch --unshallow --tags origin &&
|
|
. ../script/setup_nightly.sh;
|
|
fi
|
|
- cmake -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE
|
|
-DCMAKE_CXX_COMPILER=$CMAKE_CXX_COMPILER
|
|
-DTESTCOV=$TESTCOV
|
|
-DTCMALLOC=$TCMALLOC
|
|
-DMULTI_THREAD=$MULTI_THREAD
|
|
-DSTATIC=$STATIC
|
|
-DLEAN_EXTRA_MAKE_OPTS=$LEAN_EXTRA_MAKE_OPTS
|
|
$OPTIONS
|
|
../src
|
|
- make -j2
|
|
- if [[ $TEST != OFF ]]; then yes "A" | travis_wait 60 ctest -j2 --output-on-failure; fi
|
|
- |
|
|
# don't test packages when building nightly
|
|
if [[ $TEST_LEANPKG_REGISTRY == ON && -z $LEAN_VERSION_STRING ]]; then
|
|
(cd ../packages
|
|
if [[ $TRAVIS_OS_NAME == linux ]]; then ../bin/leanpkg add "https://github.com/leanprover/smt2_interface"; fi
|
|
../bin/leanpkg configure
|
|
for d in _target/deps/*; do (cd $d; ../../../../bin/leanpkg test); done)
|
|
fi
|
|
- if [[ $UPLOAD == ON ]]; then cpack; fi
|
|
- if [[ $UPLOAD == ON && $GH_TOKEN && $TRAVIS_PULL_REQUEST == false && $TRAVIS_BRANCH == master ]]; then (cd ..; bash script/deploy_nightly.sh build/lean-*); fi
|
|
- cd ..
|
|
|
|
after_script:
|
|
- if [[ $TESTCOV == ON ]]; then bash <(curl -s https://codecov.io/bash) -x gcov-6; fi
|
|
|
|
notifications:
|
|
email:
|
|
recipients:
|
|
- lean-build@googlegroups.com
|
|
on_success: change
|
|
on_failure: always
|
|
|
|
deploy:
|
|
provider: releases
|
|
api_key: $GH_TOKEN
|
|
file_glob: true
|
|
file: build/lean-*
|
|
skip_cleanup: true
|
|
overwrite: true
|
|
on:
|
|
condition: $UPLOAD = ON && $GH_TOKEN
|
|
repo: leanprover/lean
|
|
tags: true
|