lean4-htt/.travis.yml
2018-03-26 16:17:42 +02:00

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