| # ********************************************************** |
| # Copyright (c) 2016-2018 Google, Inc. All rights reserved. |
| # ********************************************************** |
| |
| # Dr. Memory: the memory debugger |
| # |
| # This library is free software; you can redistribute it and/or |
| # modify it under the terms of the GNU Lesser General Public |
| # License as published by the Free Software Foundation; |
| # version 2.1 of the License, and no later version. |
| # |
| # This library is distributed in the hope that it will be useful, |
| # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| # Library General Public License for more details. |
| # |
| # You should have received a copy of the GNU Lesser General Public |
| # License along with this library; if not, write to the Free Software |
| # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
| |
| # Travis CI configuration: |
| |
| notifications: |
| email: |
| # This overrides the default of sending to the committer and author. |
| recipients: |
| - drmemory-devs@googlegroups.com |
| on_success: change |
| on_failure: always |
| |
| # Don't run Travis on pushes to feature branches: pull requests cover those. |
| branches: |
| only: |
| - master |
| |
| # We use Trusty to get cmake 2.8.12 instead of 2.8.7 from Precise: |
| sudo: required |
| dist: trusty |
| |
| language: |
| - c |
| - cpp |
| |
| # We use a jobs include approach rather than an os, compiler, env matrix |
| # with exludes so we can use conditional builds (plus it's clearer this way). |
| jobs: |
| include: |
| - os: linux |
| compiler: gcc |
| env: DEPLOY=yes |
| - os: linux |
| compiler: clang |
| - os: osx |
| # gcc on Travis claims to not be CMAKE_COMPILER_IS_GNUCC so we only run clang. |
| compiler: clang |
| env: DEPLOY=yes |
| # XXX: DRi#2764: Travis OSX resources are over-subscribed and it can take |
| # hours to get an OSX machine, so we skip running PR's for now. |
| if: type != pull_request |
| |
| # For C/C++ there is no default install, so we set "install", not "before_install". |
| install: |
| - uname -a |
| # FIXME: remove the "brew update" step once Travis fixes their Mac VM's |
| # on 11/15/17. Xref https://github.com/travis-ci/travis-ci/issues/8552. |
| - if [[ "`uname`" == "Darwin" ]]; then brew update; brew install nasm; fi |
| # ImageMagick is present but these are not: |
| - if [[ "`uname`" == "Linux" ]]; then sudo apt-get -y install g++-multilib doxygen transfig; fi |
| |
| script: |
| - tests/runsuite_wrapper.pl travis |
| |
| # We disable test running for these package builds in runsuite.cmake by |
| # looking for $TRAVIS_EVENT_TYPE=="cron". |
| # Longer-term we may want to use package.cmake instead and even make official |
| # builds on Travis (DRi#2861). |
| before_deploy: |
| - git config --local user.name "Travis Auto-Tag" |
| - git config --local user.email "drmemory-devs@googlegroups.com" |
| # XXX: for now we duplicate this version number here with CMakeLists.txt. |
| # We should find a way to share (xref DRi#1565). |
| # We support setting TAG_SUFFIX on triggered builds so we can have |
| # multiple unique tags in one day (the patchlevel here is the day number). |
| - export GIT_TAG="cronbuild-2.0.$((`git log -n 1 --format=%ct` / (60*60*24)))${TAG_SUFFIX}" |
| - git tag $GIT_TAG -a -m "Travis auto-generated tag for build $TRAVIS_BUILD_NUMBER." |
| deploy: |
| provider: releases |
| api_key: |
| secure: HDMWsqw+DqxPg1lhy9pk23EyHI5PdTBo3/SA//h41tIKi2+uEtvoETidRXa/ePkEymVRGyzF7F5RVNFeKu4gM3taxa7JUbOc1OgC8o7oRVfYXZd1qALdDf03EyYAtw3iTeLKlOBSR1cnRZcoOZ6Ja9E6OZC9qjAPrXywNzZkkv4= |
| file_glob: true |
| file: "build*/DrMemory*.tar.gz" |
| skip_cleanup: true |
| # The name must just be the tag in order to match Appveyor. |
| name: $GIT_TAG |
| # This body is clobbered by Appveyor. |
| body: "Auto-generated periodic build (Travis build $TRAVIS_BUILD_NUMBER)." |
| on: |
| repo: DynamoRIO/drmemory |
| branch: master |
| condition: $TRAVIS_EVENT_TYPE = cron && $DEPLOY = yes |