# 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: - "if [[ $TRAVIS_OS_NAME = 'linux' ]]; then sudo apt-get -qq update; 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 openssl; fi" - "if [[ $TRAVIS_OS_NAME = 'osx' ]]; then OPENSSL_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 $OPENSSL_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 || true" - "make -s $JOBS encs" - "make -s $JOBS exts" - "make update-rubyspec" script: - "make test" - "make test-all TESTS='-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_1_9_3 - 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 # Local Variables: # mode: YAML # coding: utf-8-unix # indent-tabs-mode: nil # tab-width: 4 # fill-column: 79 # default-justification: full # End: