forked from ruby/ruby
-
Notifications
You must be signed in to change notification settings - Fork 118
/
.travis.yml
114 lines (103 loc) · 4.21 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
102
103
104
105
106
107
108
109
110
111
112
113
114
# Copyright (C) 2011 Urabe, Shyouhei. All rights reserved.
#
# This file is a part of the programming language Ruby. Permission is hereby
# granted, to either redistribute or modify this file, provided that the
# conditions mentioned in the file COPYING are met. Consult the file for
# details.
# This is a Travis-CI build configuration file. The list of configurations
# available is located in
#
# http://about.travis-ci.org/docs/user/build-configuration/
#
# and as Ruby itself is a project written in C language,
#
# http://about.travis-ci.org/docs/user/languages/c/
#
# is also a good place to look at.
# Language specification.
language: c
# Compilers. Several compilers are provided in Travis, so we try them all.
# The value set here is visible via $CC environment variable.
compiler:
- gcc
- clang
os:
- linux
- osx
# Dependencies. Some header files are missing in a Travis' worker VM, so we
# have to install them. The "1.9.1" here is OK. It is the most adopted
# version string for Debian/Ubuntu, and no dependencies have been changed so
# far since the 1.9.1 release.
before_install:
- "CONFIG_FLAG="
- "if [[ $TRAVIS_OS_NAME = 'linux' ]]; then sudo apt-get -qq update; fi"
# Travis ships an outdated, broken version of libssl by default
- "if [[ $TRAVIS_OS_NAME = 'linux' ]]; then sudo apt-get -qq --only-upgrade install '^libssl.*'; fi"
- "if [[ $TRAVIS_OS_NAME = 'linux' ]]; then sudo apt-get -qq install $CC; fi" # upgrade if any
- "if [[ $TRAVIS_OS_NAME = 'linux' ]]; then JOBS='-j'; fi"
- "if [[ $TRAVIS_OS_NAME = 'osx' ]]; then brew install autoconf gdbm openssl; fi"
- "if [[ $TRAVIS_OS_NAME = 'osx' ]]; then CONFIG_FLAG=\"$CONFIG_FLAG --with-gdbm-dir=`brew --prefix gdbm`\"; fi"
- "if [[ $TRAVIS_OS_NAME = 'osx' ]]; then CONFIG_FLAG=\"$CONFIG_FLAG --with-openssl-dir=`brew --prefix openssl`\"; fi"
- "if [[ $TRAVIS_OS_NAME = 'osx' && $CC = 'gcc' ]]; then CC='gcc-4.9'; fi"
install: "if [[ $TRAVIS_OS_NAME = 'linux' ]]; then sudo apt-get -qq build-dep ruby1.9.1 2>/dev/null; fi"
# Script is where the test runs. Note we just do "make test", not other tests
# like test-all, test-rubyspec. This is because they take too much time,
# enough for Travis to shut down the VM as being stalled.
before_script:
- "if [[ $TRAVIS_OS_NAME = 'osx' ]]; then rm -f ~/Library/Logs/DiagnosticReports/ruby_*.crash; fi"
- "uname -a"
- "uname -r"
- "rm -fr .ext autom4te.cache"
- "make -f common.mk BASERUBY=ruby MAKEDIRS='mkdir -p' srcdir=. update-config_files"
- "autoconf"
- "mkdir config_1st config_2nd"
- "./configure -C --disable-install-doc --with-gcc=$CC $CONFIG_FLAG"
- "cp -pr config.status .ext/include config_1st"
- "make reconfig"
- "cp -pr config.status .ext/include config_2nd"
- "diff -ru config_1st config_2nd"
- "make after-update BASERUBY=ruby"
- "make -s $JOBS encs"
- "make -s $JOBS exts"
- "make update-rubyspec"
- "if [[ $TRAVIS_OS_NAME = 'osx' ]]; then echo 'exclude :test_deadlock_by_signal_at_forking, \"under investigation\"' >> test/excludes/TestProcess.rb; fi"
script:
- "make test"
- "make test-all TESTOPTS='-q -j2'"
- "make test-rubyspec"
after_failure:
- "if [[ $TRAVIS_OS_NAME = 'osx' ]]; then find ~/Library/Logs/DiagnosticReports -type f -name ruby_\\*.crash -ls -execdir cat {} \\; -delete; fi"
# Branch matrix. Not all branches are Travis-ready so we limit branches here.
branches:
only:
- trunk
- ruby_2_0_0
- ruby_2_1
- ruby_2_2
# We want to be notified when something happens.
notifications:
irc:
channels:
- "irc.freenode.org#ruby-core"
- "irc.freenode.org#ruby-ja"
on_success: change # [always|never|change] # default: always
on_failure: change # [always|never|change] # default: always
template:
- "%{message} by @%{author}: See %{build_url}"
# Update ruby-head installed on Travis CI so other projects can test against it.
webhooks:
urls:
- "https://rubies.travis-ci.org/rebuild/ruby-head"
on_success: always
on_failure: never
email:
# Local Variables:
# mode: YAML
# coding: utf-8-unix
# indent-tabs-mode: nil
# tab-width: 4
# fill-column: 79
# default-justification: full
# End: