100 lines
3.2 KiB
YAML
100 lines
3.2 KiB
YAML
# This does Travis CI builds on Linux and OS X, and on a tag build,
|
|
# also produces an OS X package.
|
|
os:
|
|
- linux
|
|
- osx
|
|
|
|
cache:
|
|
- apt
|
|
|
|
language: cpp
|
|
|
|
# Use the Ubuntu 14.04 build environment for Linux.
|
|
sudo: required
|
|
dist: trusty
|
|
|
|
# Currently we're using the Travis Xcode 7.1/OS X 10.10 image to
|
|
# get i386/x86_64 fat binaries.
|
|
osx_image: xcode7.1
|
|
|
|
# Linux dependencies
|
|
addons:
|
|
apt:
|
|
packages:
|
|
# For build.
|
|
- protobuf-compiler
|
|
- libprotobuf-dev
|
|
- libutempter-dev
|
|
# Test suite needs these.
|
|
- tmux
|
|
- perl
|
|
|
|
before_install:
|
|
# Get full repo for `git describe`
|
|
- git fetch --tags --unshallow
|
|
# OS X dependencies. The package_deps step takes 15 minutes or so
|
|
# and is fairly quiet, so wrap it in travis_wait to keep it from
|
|
# being killed.
|
|
- |
|
|
if test osx = "${TRAVIS_OS_NAME}"; then
|
|
macosx/brew-deps.sh install &&
|
|
if test -n "${TRAVIS_TAG}"; then
|
|
travis_wait 30 macosx/brew-deps.sh package_deps
|
|
else
|
|
macosx/brew-deps.sh deps
|
|
fi
|
|
fi
|
|
|
|
# Use before_script to report the build configuration.
|
|
before_script:
|
|
# Describe this system.
|
|
- id
|
|
- env
|
|
- git describe --long
|
|
- |
|
|
if test osx = "${TRAVIS_OS_NAME}" && test -n "${TRAVIS_TAG}"; then
|
|
rm -rf macosx/build-report "macosx/${TRAVIS_TAG}-build-report.tbz" &&
|
|
mkdir macosx/build-report &&
|
|
cd macosx/build-report &&
|
|
../brew-deps.sh describe &&
|
|
../osx-xcode.sh describe &&
|
|
tar -cjf "../${TRAVIS_TAG}-build-report.tbz" . &&
|
|
cd -
|
|
fi
|
|
|
|
# 'make distcheck', and OS X package build on tag builds.
|
|
script:
|
|
- ./autogen.sh
|
|
- ./configure --enable-compile-warnings=error --enable-examples
|
|
- make distcheck VERBOSE=1 V=1
|
|
# Build OS X package for tags.
|
|
- |
|
|
if test osx = "${TRAVIS_OS_NAME}" && test -n "${TRAVIS_TAG}"; then
|
|
cd macosx &&
|
|
env ZERO_AR_DATE=1 MACOSX_DEPLOYMENT_TARGET=10.10 ./build.sh &&
|
|
shasum -a 256 "${TRAVIS_TAG}.pkg" "${TRAVIS_TAG}-build-report.tbz" &&
|
|
cd -
|
|
fi
|
|
# Deploy the OS X package and distribution tarball to a GitHub release.
|
|
deploy:
|
|
provider: releases
|
|
api_key:
|
|
secure: O+EmNHUQpqvrWNb1LYv5CXF9o35Mybi+Y48jr+nV3oJ+dLlwgmP71tDzARY0rEY18xT4DL9RBbl5Y74A4nZxvSMSih+VBUf+lgBhkAFkU5W1sRTaJdQVtJw6NcaeuDR/TvVMpJAPxLtHOZnmqplkQVDn4fpkweGaW0Suk7eSlibF3fd0dhoZ8sfDgWQpUW61C08ENBC9/ru01BqDcNuWA9EoS2aLRVCHKR5C02D2EFONlHTxu32X9qm5IcVrk+Zi5mmqyHk74A4a7QRJCDixKyt53LGXYpQh9flePmzSqZDKO5q3PSmWohoUzGLkKBcZit/mSd5aUeIzd7gk/YHNxGfZpGvLzjVDWpjdTXxALTcpVA64VFqLbb3P7N+zYQ7S9ZucwAz8XQ+wArqszQrLtU3vtz+AsO6dLRxAg0lLjNe084Gv0hFAn8u8HGNqBBZ177sTKoEmL3w0wdwSuxhk1aGIFnlKrzjFY57HvJlxSNupAeXqtU9/DNwLyzsnFc1qN4UKJ/hXdb5mtwug+DZy7E0RpJ/jJemfy7RjIAAZCowCLRFBxfRkY3HRaHeaF31mAogkc8FLXFjx2sR95t7GvK1AvJvHdmXs4OxjvgEVl9OI+mWQ9xMqcmjKwx5KuuAcBt8sLK7MJE6iRBwYBQ7eUQrJcYxRMN+w0vhznvLZwv8=
|
|
# Save build artifacts.
|
|
skip_cleanup: true
|
|
# Using a shell variable in deploy.file is undocumented but seems to work.
|
|
file:
|
|
- ${TRAVIS_TAG}.tar.gz
|
|
- macosx/${TRAVIS_TAG}.pkg
|
|
- macosx/${TRAVIS_TAG}-build-report.tbz
|
|
on:
|
|
repo: cgull/mosh
|
|
tags: true
|
|
condition: ${TRAVIS_OS_NAME} = osx
|
|
|
|
notifications:
|
|
irc:
|
|
channels:
|
|
- "chat.freenode.net#mosh"
|
|
skip_join: true
|