blob: 720f43458c9a364598d6fae3ce05f4e076fb798d [file] [log] [blame]
# **********************************************************
# 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-1.11.$((`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