2012-08-21 04:10:37 -04:00
|
|
|
# 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.
|
2012-05-20 23:45:52 -04:00
|
|
|
|
2012-08-21 04:10:37 -04:00
|
|
|
# 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.
|
2011-11-26 01:26:44 -05:00
|
|
|
|
2012-08-21 04:10:37 -04:00
|
|
|
# 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
|
2013-06-03 10:46:45 -04:00
|
|
|
- clang
|
2012-08-21 04:10:37 -04:00
|
|
|
|
2014-09-19 22:55:27 -04:00
|
|
|
os:
|
|
|
|
- linux
|
|
|
|
- osx
|
|
|
|
|
2012-08-21 04:10:37 -04:00
|
|
|
# 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:
|
2015-03-02 22:16:32 -05:00
|
|
|
- "CONFIG_FLAG="
|
2014-09-19 22:55:27 -04:00
|
|
|
- "if [[ $TRAVIS_OS_NAME = 'linux' ]]; then sudo apt-get -qq update; fi"
|
2015-07-31 10:36:42 -04:00
|
|
|
# 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"
|
2014-09-19 22:55:27 -04:00
|
|
|
- "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"
|
2015-03-02 21:55:53 -05:00
|
|
|
- "if [[ $TRAVIS_OS_NAME = 'osx' ]]; then brew install autoconf gdbm openssl; fi"
|
2015-03-02 22:16:32 -05:00
|
|
|
- "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"
|
2014-10-03 10:41:26 -04:00
|
|
|
- "if [[ $TRAVIS_OS_NAME = 'osx' && $CC = 'gcc' ]]; then CC='gcc-4.9'; fi"
|
2014-09-19 22:55:27 -04:00
|
|
|
install: "if [[ $TRAVIS_OS_NAME = 'linux' ]]; then sudo apt-get -qq build-dep ruby1.9.1 2>/dev/null; fi"
|
2012-08-21 04:10:37 -04:00
|
|
|
|
|
|
|
# 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:
|
2014-12-17 20:14:09 -05:00
|
|
|
- "if [[ $TRAVIS_OS_NAME = 'osx' ]]; then rm -f ~/Library/Logs/DiagnosticReports/ruby_*.crash; fi"
|
2014-04-23 00:48:52 -04:00
|
|
|
- "uname -a"
|
2014-04-23 01:31:08 -04:00
|
|
|
- "uname -r"
|
2014-08-20 04:37:54 -04:00
|
|
|
- "rm -fr .ext autom4te.cache"
|
2015-01-19 08:44:32 -05:00
|
|
|
- "make -f common.mk BASERUBY=ruby MAKEDIRS='mkdir -p' srcdir=. update-config_files"
|
2012-08-21 04:10:37 -04:00
|
|
|
- "autoconf"
|
2013-08-18 19:31:26 -04:00
|
|
|
- "mkdir config_1st config_2nd"
|
2015-03-02 22:16:32 -05:00
|
|
|
- "./configure -C --disable-install-doc --with-gcc=$CC $CONFIG_FLAG"
|
2013-08-18 19:37:30 -04:00
|
|
|
- "cp -pr config.status .ext/include config_1st"
|
2013-08-18 19:31:26 -04:00
|
|
|
- "make reconfig"
|
|
|
|
- "cp -pr config.status .ext/include config_2nd"
|
2015-03-01 23:35:12 -05:00
|
|
|
- "diff -ru config_1st config_2nd"
|
2014-09-19 22:55:27 -04:00
|
|
|
- "make -s $JOBS encs"
|
|
|
|
- "make -s $JOBS exts"
|
2014-10-30 21:16:48 -04:00
|
|
|
- "make update-rubyspec"
|
2015-03-02 20:54:54 -05:00
|
|
|
- "if [[ $TRAVIS_OS_NAME = 'osx' ]]; then echo 'exclude :test_deadlock_by_signal_at_forking, \"under investigation\"' >> test/excludes/TestProcess.rb; fi"
|
2013-04-18 09:55:45 -04:00
|
|
|
script:
|
2014-12-17 20:14:09 -05:00
|
|
|
- "make test"
|
2015-03-02 21:55:53 -05:00
|
|
|
- "make test-all TESTOPTS='-q -j2'"
|
2014-12-17 20:14:09 -05:00
|
|
|
- "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"
|
2012-08-21 04:10:37 -04:00
|
|
|
|
|
|
|
# Branch matrix. Not all branches are Travis-ready so we limit branches here.
|
2013-04-18 14:04:11 -04:00
|
|
|
branches:
|
|
|
|
only:
|
|
|
|
- trunk
|
2014-04-21 21:07:29 -04:00
|
|
|
- ruby_2_0_0
|
|
|
|
- ruby_2_1
|
|
|
|
- ruby_2_2
|
2012-08-03 03:41:18 -04:00
|
|
|
|
2012-08-21 04:10:37 -04:00
|
|
|
# We want to be notified when something happens.
|
2013-04-18 14:04:11 -04:00
|
|
|
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}"
|
2012-08-21 04:10:37 -04:00
|
|
|
|
2013-10-07 16:41:59 -04:00
|
|
|
# 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
|
|
|
|
|
2015-03-20 04:43:23 -04:00
|
|
|
email:
|
|
|
|
- ko1c-failure@atdot.net
|
|
|
|
- shibata.hiroshi@gmail.com
|
|
|
|
|
2012-08-21 04:10:37 -04:00
|
|
|
# Local Variables:
|
|
|
|
# mode: YAML
|
|
|
|
# coding: utf-8-unix
|
|
|
|
# indent-tabs-mode: nil
|
|
|
|
# tab-width: 4
|
|
|
|
# fill-column: 79
|
|
|
|
# default-justification: full
|
|
|
|
# End:
|