forked from mobile-shell/mosh
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
101 lines (92 loc) · 2.69 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# 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
# Use whatever Travis likes + DEPLOYMENT_TARGET=10.12
# osx_image: xcode9.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 60 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}-osx-build-report.tbz" &&
mkdir macosx/build-report &&
cd macosx/build-report &&
../brew-deps.sh describe &&
../osx-xcode.sh describe &&
tar -cjf "../${TRAVIS_TAG}-osx-build-report.tbz" . &&
cd -
fi
# 'make distcheck', and OS X package build on tag builds.
script:
- |
if test osx = "${TRAVIS_OS_NAME}"; then
sysctl hw.ncpu
fi
- ./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.12 ./build.sh &&
shasum -a 256 "${TRAVIS_TAG}.pkg" "${TRAVIS_TAG}-osx-build-report.tbz" &&
cd -
fi
# Deploy the OS X package and its build report to a GitHub release.
deploy:
provider: releases
api_key:
secure: noQsHb/ycLHcyS7VwgpPfsH1KNaKd1YyjGwAobxIPTbeyP6fPk8hHiTW3rvgOyXTh4bs0SuZ5iMBsTYPJ1sgDSsICLZvIoZeD7F9tdkvlJCKKKNq4y+vJVS6kHOajD9nLV+pcexIB74QazBDnXscKNsrulk5rcD3rj75P1QKYXs=
# Save build artifacts.
skip_cleanup: true
# Using a shell variable in deploy.file is undocumented but seems to work.
file:
- macosx/${TRAVIS_TAG}.pkg
- macosx/${TRAVIS_TAG}-osx-build-report.tbz
on:
repo: mobile-shell/mosh
tags: true
condition: ${TRAVIS_OS_NAME} = osx
notifications:
irc:
channels:
- "chat.freenode.net#mosh"
skip_join: true