language: cpp env: global: # BBTOKEN - secure: "gBp3VTkChQflgWBoEnHhA2y7+KCdHS8u+uqij6kh4v+I5bj/Bu7uEeqMDZwmRRoTkrDu6eYHxCJQOr9ODAVc2BP4Y8zUFWuVKUrkvP9Qeeqe/X+7WFuQSHMy3yC5ESb8LVdiy4aAQuSt0sHC0M3BdnBMTZ9Ergkcc9lmW6bu9XQ=" # GH_TOKEN - secure: "Zdab8c1wnKcwYWEVBvtaClCzw7sYmFPZ47urG4jSeO5FL+M4MiR6c7STeoW7wge9k3uUyMTAodD/bJ0RhskBp0wbvg0UoYQaFRm+RwsDiM7CNj+fYM8wnV0cvTJj869NsqQ92zde6L5gFEHNDrVUwC6PJpIC4JxRRfzIA4/qH5A=" # DROPBOX_KEY - secure: "b9qdjrlr2khvQclMg12Fjg0DF3Chv46SdNRymK7cPukAhIaqaPn8g0FL4K9xW/asXRXdWcd3dYBoarjkqX43mNV9nl5Hl2VwV7T6KeGAxQSRqdYioMugIY0P8xrj4i5dwuvt8aqSlCctSozE1e/th8EWjjy6TWi890MJB//NGRE=" # LEANREPO - secure: "KsbUsMxTFDbUaObKOTxfWSu0gGzbUWlJr52nI1ITMqLxswettUR9bYAa1HTA+7hXXCT1W5I+RjxeWi74C+w/eTJGPGePX0irtzjNF/XVhP1ADoJJVQCF64yv02GNBeeUzGSDiW4bmO8ZLxTzvFr2ZskJDe/bIytQd3pJAlU6M0w=" matrix: # ======================================================= # DEBUG Build # ======================================================= # D1. clang++-3.3 | DEBUG | TCMALLOC | CDASH - CMAKE_CXX_COMPILER=clang++-3.3 CMAKE_BUILD_TYPE=DEBUG USE_TCMALLOC=TRUE PUSH_TO_CDASH=TRUE # D2. g++-4.8 | DEBUG | TCMALLOC | CDASH + TRIGGERS - CMAKE_CXX_COMPILER=g++-4.8 CMAKE_BUILD_TYPE=DEBUG TRIGGER_BB=TRUE TRIGGER_OSX=TRUE TRIGGER_WINDOWS=TRUE USE_TCMALLOC=TRUE PUSH_TO_CDASH=TRUE # D3. clang++-3.3 | DEBUG - CMAKE_CXX_COMPILER=clang++-3.3 CMAKE_BUILD_TYPE=DEBUG # D4. g++-4.8 | DEBUG - CMAKE_CXX_COMPILER=g++-4.8 CMAKE_BUILD_TYPE=DEBUG # ======================================================= # RELEASE Build # ======================================================= # R1. clang++-3.3 | RELEASE | TCMALLOC | CDASH - CMAKE_CXX_COMPILER=clang++-3.3 CMAKE_BUILD_TYPE=RELEASE USE_TCMALLOC=TRUE PUSH_TO_CDASH=TRUE # R2. g++-4.8 | RELEASE | TCMALLOC | CDASH + UPLOAD=>DROPBOX - CMAKE_CXX_COMPILER=g++-4.8 CMAKE_BUILD_TYPE=RELEASE USE_TCMALLOC=TRUE UPLOAD=linux_tcmalloc PUSH_TO_CDASH=TRUE # R3. clang++-3.3 | RELEASE - CMAKE_CXX_COMPILER=clang++-3.3 CMAKE_BUILD_TYPE=RELEASE # R4. g++-4.8 | RELEASE | UPLOAD=>DROPBOX - CMAKE_CXX_COMPILER=g++-4.8 CMAKE_BUILD_TYPE=RELEASE UPLOAD=linux # ======================================================= # MEMCHECK Build # ======================================================= # M1. clang++-3.3 | DEBUG | MEMCHECK | CDASH - CMAKE_CXX_COMPILER=clang++-3.3 CMAKE_BUILD_TYPE=DEBUG MEMCHECK=TRUE PUSH_TO_CDASH=TRUE # M2. g++-4.8 | DEBUG | MEMCHECK | CDASH - CMAKE_CXX_COMPILER=g++-4.8 CMAKE_BUILD_TYPE=DEBUG MEMCHECK=TRUE PUSH_TO_CDASH=TRUE # ======================================================= # DOXYGEN Build # ======================================================= # DOC. g++-4.8 | DEBUG | TCMALLOC | DOXYGEN=>DROPBOX - CMAKE_CXX_COMPILER=g++-4.8 CMAKE_BUILD_TYPE=DOXYGEN BUILD_DOXYGEN=TRUE # ======================================================= # TESTCOV Build # ======================================================= # TC. g++-4.8 | DEBUG | CDASH - CMAKE_CXX_COMPILER=g++-4.8 CMAKE_BUILD_TYPE=TESTCOV PUSH_TO_CDASH=TRUE install: - until sudo add-apt-repository --yes ppa:ubuntu-toolchain-r/test; do echo retry; done - until sudo add-apt-repository --yes ppa:h-rayflood/llvm; do echo retry; done - until sudo add-apt-repository --yes ppa:kalakris/cmake; do echo retry; done - until sudo apt-get -qq update; do echo retry; done - if [[ $USE_TCMALLOC == TRUE ]]; then until sudo add-apt-repository --yes ppa:agent-8131/ppa && sudo apt-get -qq update && sudo apt-get -qq install libgoogle-perftools-dev; do echo retry; done; fi - until sudo apt-get -qq install libgmp-dev libmpfr-dev; do echo retry; done - wget http://www.cmake.org/files/v2.8/cmake-2.8.11.2.tar.gz; tar xvfz cmake-2.8.11.2.tar.gz; cd cmake-2.8.11.2; ./configure; make; sudo make install; cd ..; - until sudo apt-get -qq install python; do echo retry; done - wget http://dl.dropboxusercontent.com/u/203889738/gcc/ninja.tar.gz; tar xfz ninja.tar.gz; cd ninja; ./bootstrap.py; sudo cp -v ninja /usr/bin/; cd ..; - until sudo apt-get -qq install libstdc++-4.8-dev; do echo retry; done - if [[ $CMAKE_CXX_COMPILER == g++-4.8 ]]; then until sudo apt-get -qq install g++-4.8; do echo retry; done fi - if [[ $CMAKE_CXX_COMPILER == clang++-3.3 ]]; then until sudo apt-get -qq install clang-3.3; do echo retry; done fi - if [[ $LEANREPO == BLESSED && $MEMCHECK == TRUE ]]; then sudo apt-get -qq install valgrind; fi - if [[ $LEANREPO == BLESSED && ($UPLOAD || $BUILD_DOXYGEN == TRUE) ]]; then sudo apt-get -qq install python python-pip; sudo pip install dropbox; fi before_script: - if [[ $LEANREPO == BLESSED && $TRIGGER_BB == TRUE ]]; then git push -q https://soonhok:${BB_TOKEN}@bitbucket.org/soonhok/lean.git +master; fi - if [[ $LEANREPO == BLESSED && $TRIGGER_OSX == TRUE ]]; then MSG=`git log --pretty=oneline --abbrev-commit -n 1 | cut -d ' ' -f 2-`; cp .travis.yml /tmp/.travis.temp.yml; cp .travis.osx.yml .travis.yml; git config --global user.email "notifications@travis-ci.org"; git config --global user.name "Travis CI"; git add .travis.yml; git commit -m "$MSG"; git push -q https://soonhokong:${GH_TOKEN}@github.com/soonhokong/lean-osx.git +HEAD:master; mv /tmp/.travis.temp.yml .travis.yml; git reset --hard HEAD~; fi - if [[ $LEANREPO == BLESSED && $TRIGGER_WINDOWS == TRUE ]]; then MSG=`git log --pretty=oneline --abbrev-commit -n 1 | cut -d ' ' -f 2-`; cp .travis.yml /tmp/.travis.temp.yml; cp .travis.windows.yml .travis.yml; git config --global user.email "notifications@travis-ci.org"; git config --global user.name "Travis CI"; git add .travis.yml; git commit -m "$MSG"; git push -q https://soonhokong:${GH_TOKEN}@github.com/soonhokong/lean-windows.git +HEAD:master; mv /tmp/.travis.temp.yml .travis.yml; git reset --hard HEAD~; fi script: - mkdir -p build - cd build - cmake -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} -G Ninja ../src; - if [[ $CMAKE_BUILD_TYPE == DEBUG || $CMAKE_BUILD_TYPE == RELEASE || $CMAKE_BUILD_TYPE == TESTCOV ]]; then SITE=Ubuntu12.04@Travis; GIT_COMMIT=`git log --oneline -n 1 | cut -d ' ' -f 1`; if [[ $CMAKE_BUILD_TYPE == RELEASE ]]; then BUILD_TYPE=Release; else BUILD_TYPE=Debug; fi; BUILD_NAME=${TRAVIS_BRANCH}_${GIT_COMMIT}_${CMAKE_CXX_COMPILER}_${BUILD_TYPE}; CONFIG_FILE=DartConfiguration.tcl; sed -i "s/^Site:.*/Site:$SITE/" $CONFIG_FILE; sed -i "s/BuildName:.*/BuildName:$BUILD_NAME/" $CONFIG_FILE; if [[ $MEMCHECK == TRUE ]]; then ninja; else ctest -D ExperimentalConfigure; sed -i "s/^Site:.*/Site:$SITE/" $CONFIG_FILE; sed -i "s/BuildName:.*/BuildName:$BUILD_NAME/" $CONFIG_FILE; ctest -D ExperimentalBuild -VV; yes "C" | ctest -D ExperimentalTest -VV; fi; fi - cd .. after_script: - cd build - if [[ $LEANREPO == BLESSED && $CMAKE_BUILD_TYPE == TESTCOV ]]; then ctest -D ExperimentalCoverage; fi - if [[ $LEANREPO == BLESSED && $MEMCHECK == TRUE ]]; then yes "C" | ctest -D ExperimentalMemCheck -VV; fi - if [[ $LEANREPO == BLESSED && $PUSH_TO_CDASH == TRUE ]]; then ctest -D ExperimentalSubmit; fi - cd .. - if [[ $LEANREPO == BLESSED && $BUILD_DOXYGEN == TRUE ]]; then sudo apt-get -qq install graphviz doxygen; script/doxygen.sh; DOXYGEN_DIR=doc/html; find $DOXYGEN_DIR -type f | xargs shasum | sort > doxygen_shasum.txt; cp doxygen_shasum.txt $DOXYGEN_DIR/; wget http://dl.dropboxusercontent.com/u/203889738/${DOXYGEN_DIR}/doxygen_shasum.txt -O doxygen_shasum_old.txt; comm -23 doxygen_shasum.txt doxygen_shasum_old.txt | cut -d ' ' -f 3 > doxygen_new_files.txt; echo "${DOXYGEN_DIR}/doxygen_shasum.txt" >> doxygen_new_files.txt; comm -13 doxygen_shasum.txt doxygen_shasum_old.txt | cut -d ' ' -f 3 > doxygen_delete_files.txt; script/dropbox_upload.py --destpath /Public --dropbox-token ${DROPBOX_KEY} --deletelist doxygen_delete_files.txt; script/dropbox_upload.py --destpath /Public --dropbox-token ${DROPBOX_KEY} --copylist doxygen_new_files.txt; fi - if [[ $LEANREPO == BLESSED && $UPLOAD ]]; then UPLOAD_DIR=bin; BINARY=lean_${UPLOAD}; NOW=`TZ='America/Los_Angeles' date +"%Y%m%d_%H%M"`; GIT_COMMIT=`git log --oneline -n 1 | cut -d ' ' -f 1`; OS=linux; ARCHIVE_BINARY=${NOW}_${TRAVIS_BRANCH}_${GIT_COMMIT}_${OS}_${CMAKE_CXX_COMPILER}_${BUILD_TYPE}; if [[ $USE_TCMALLOC ]]; then ARCHIVE_BINARY=${ARCHIVE_BINARY}_tcmalloc; fi; mkdir ${UPLOAD_DIR}; cp -v build/shell/lean ${UPLOAD_DIR}/${BINARY}; tar cvfz ${UPLOAD_DIR}/${ARCHIVE_BINARY}.tar.gz ${UPLOAD_DIR}/${BINARY}; script/dropbox_upload.py --srcpath ${UPLOAD_DIR} --destpath /Public/${UPLOAD_DIR} --dropbox-token ${DROPBOX_KEY}; fi notifications: email: recipients: - leansmt-dev@googlegroups.com on_success: always on_failure: always