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: c
|
2017-07-07 22:05:55 -04:00
|
|
|
dist: trusty
|
2016-09-27 21:49:16 -04:00
|
|
|
|
2018-01-25 22:54:55 -05:00
|
|
|
sudo: false
|
2018-10-17 10:09:24 -04:00
|
|
|
addons:
|
|
|
|
apt:
|
|
|
|
config:
|
|
|
|
retries: true
|
|
|
|
update: true
|
|
|
|
sources:
|
|
|
|
- ubuntu-toolchain-r-test
|
|
|
|
packages:
|
|
|
|
- gcc-8
|
|
|
|
- libffi-dev
|
|
|
|
- libgdbm-dev
|
|
|
|
- libgmp-dev
|
|
|
|
- libjemalloc-dev
|
|
|
|
- libncurses5-dev
|
|
|
|
- libncursesw5-dev
|
|
|
|
- libreadline6-dev
|
|
|
|
- libssl-dev
|
|
|
|
- libyaml-dev
|
|
|
|
- openssl
|
|
|
|
- valgrind
|
|
|
|
- zlib1g-dev
|
|
|
|
homebrew:
|
|
|
|
packages:
|
|
|
|
- gdbm
|
|
|
|
- gmp
|
|
|
|
- libffi
|
2018-10-17 11:13:36 -04:00
|
|
|
- openssl@1.1
|
2018-10-17 10:09:24 -04:00
|
|
|
- zlib
|
2017-12-13 06:13:55 -05:00
|
|
|
|
2018-09-09 08:48:33 -04:00
|
|
|
matrix:
|
|
|
|
include:
|
|
|
|
- os: linux
|
|
|
|
compiler: gcc
|
2018-10-17 10:09:24 -04:00
|
|
|
env:
|
|
|
|
- "CONFIG_FLAG='--with-gmp --with-jemalloc --with-valgrind'"
|
2018-09-09 08:48:33 -04:00
|
|
|
- os: linux
|
|
|
|
compiler: gcc-8
|
2018-10-17 10:09:24 -04:00
|
|
|
- os: osx
|
|
|
|
compiler: clang
|
|
|
|
# We are not going to make rdoc here; that is to be done above.
|
|
|
|
env:
|
2018-10-17 11:13:36 -04:00
|
|
|
- "CONFIG_FLAG='--disable-install-docs --with-opt-dir=/usr/local/opt/openssl@1.1:/usr/local/opt/zlib'"
|
2018-09-09 11:46:51 -04:00
|
|
|
- os: linux
|
|
|
|
language: ruby
|
|
|
|
rvm: 2.3
|
2018-09-12 08:14:45 -04:00
|
|
|
name: Running ruby/spec on 2.3 to ensure version guards are correctly added
|
2018-09-09 11:46:51 -04:00
|
|
|
before_install:
|
|
|
|
install:
|
|
|
|
before_script: chmod -R u+w spec/ruby
|
|
|
|
script: ruby -C spec/ruby ../mspec/bin/mspec -j .
|
2018-10-17 11:42:34 -04:00
|
|
|
allow_failures:
|
|
|
|
# It randomly hangs on travis osx. Let's remove this from allow_failures once it gets stable.
|
|
|
|
- os: osx
|
2014-09-19 22:55:27 -04:00
|
|
|
|
2018-10-17 10:09:24 -04:00
|
|
|
before_install: |
|
|
|
|
: ${CONFIG_FLAG=}
|
|
|
|
case "$TRAVIS_OS_NAME" in
|
2018-10-17 11:42:34 -04:00
|
|
|
linux) JOBS=-j`nproc` ;;
|
2018-10-17 10:09:24 -04:00
|
|
|
osx) JOBS=-j`sysctl -n hw.activecpu`
|
|
|
|
: Bare "brew update" nukes everything.
|
|
|
|
: These steps are very carefully chosen to avoid breaking things.
|
|
|
|
brew_core_dir=/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/
|
|
|
|
git -C $brew_core_dir fetch -q origin
|
|
|
|
git -C $brew_core_dir checkout -q 25590710e3f7af9cfa173c5cd3eb41a0532107b6
|
2018-10-17 11:13:36 -04:00
|
|
|
HOMEBREW_NO_AUTO_UPDATE=1 brew upgrade openssl@1.1
|
|
|
|
/usr/local/opt/openssl@1.1/bin/openssl version
|
2018-10-17 10:09:24 -04:00
|
|
|
;;
|
|
|
|
esac
|
2012-08-21 04:10:37 -04:00
|
|
|
|
|
|
|
before_script:
|
2017-05-26 23:14:04 -04:00
|
|
|
- "echo JOBS=$JOBS"
|
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"
|
2016-01-12 22:22:36 -05:00
|
|
|
- "echo $TERM"
|
2017-05-23 08:42:40 -04:00
|
|
|
- "> config.status"
|
|
|
|
- "sed -f tool/prereq.status Makefile.in common.mk > Makefile"
|
|
|
|
- "make update-config_files"
|
2017-03-23 22:44:21 -04:00
|
|
|
- "make touch-unicode-files"
|
2017-05-26 23:14:04 -04:00
|
|
|
- "make -s $JOBS srcs UNICODE_FILES=."
|
2017-05-23 08:42:40 -04:00
|
|
|
- "requests=; for req in ${RUBYSPEC_PULL_REQUEST//,/ }; do
|
2017-04-08 03:29:54 -04:00
|
|
|
requests=\"$requests +refs/pull/$req/merge:\";
|
|
|
|
done"
|
2017-09-20 16:19:54 -04:00
|
|
|
- "${requests:+git -C spec/ruby -c user.email=none -c user.name=none pull --no-edit origin $requests}"
|
|
|
|
- "${requests:+git -C spec/ruby log --oneline origin/master..@}"
|
2017-05-23 08:42:40 -04:00
|
|
|
- "rm config.status Makefile rbconfig.rb .rbconfig.time"
|
|
|
|
- "mkdir build config_1st config_2nd"
|
2017-05-23 09:18:45 -04:00
|
|
|
- "chmod -R a-w ."
|
|
|
|
- "chmod u+w build config_1st config_2nd"
|
2017-05-23 08:42:40 -04:00
|
|
|
- "cd build"
|
2018-02-07 11:39:17 -05:00
|
|
|
- "../configure -C --disable-install-doc --prefix=/tmp/ruby-prefix --with-gcc=$CC $CONFIG_FLAG"
|
2017-05-23 08:42:40 -04:00
|
|
|
- "cp -pr config.cache config.status .ext/include ../config_1st"
|
|
|
|
- "make reconfig"
|
|
|
|
- "cp -pr config.cache config.status .ext/include ../config_2nd"
|
|
|
|
- "(cd .. && exec diff -ru config_1st config_2nd)"
|
2018-02-07 11:39:17 -05:00
|
|
|
- "make -s $JOBS && make install"
|
2016-09-27 21:49:16 -04:00
|
|
|
|
2013-04-18 09:55:45 -04:00
|
|
|
script:
|
2017-03-30 03:25:13 -04:00
|
|
|
- "make -s test TESTOPTS=--color=never"
|
2018-10-17 11:42:34 -04:00
|
|
|
- "make -s $JOBS test-all -o exts TESTOPTS='-q --color=never --job-status=normal' RUBY_FORCE_TEST_JIT=1"
|
2017-09-20 16:19:54 -04:00
|
|
|
- "make -s $JOBS test-spec MSPECOPT=-j"
|
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
|
2015-12-24 13:37:43 -05:00
|
|
|
- ruby_2_3
|
2016-12-23 11:09:09 -05:00
|
|
|
- ruby_2_4
|
2017-12-25 02:56:46 -05:00
|
|
|
- ruby_2_5
|
2016-03-07 03:17:02 -05:00
|
|
|
- /^feature\//
|
|
|
|
- /^bug\//
|
2018-09-09 08:48:32 -04:00
|
|
|
- /^travis-/
|
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:
|
2016-10-05 08:36:40 -04:00
|
|
|
- "chat.freenode.net#ruby-core"
|
|
|
|
- "chat.freenode.net#ruby-ja"
|
2013-04-18 14:04:11 -04:00
|
|
|
on_success: change # [always|never|change] # default: always
|
2016-01-12 12:10:27 -05:00
|
|
|
on_failure: always # [always|never|change] # default: always
|
2013-04-18 14:04:11 -04:00
|
|
|
template:
|
|
|
|
- "%{message} by @%{author}: See %{build_url}"
|
2012-08-21 04:10:37 -04:00
|
|
|
|
2017-07-27 07:56:54 -04:00
|
|
|
slack:
|
2018-01-05 01:18:57 -05:00
|
|
|
rooms:
|
2018-02-11 01:33:45 -05:00
|
|
|
- secure: i1GLETSKye85ea6dGNA3MxI/5myChmMFiZtBd5C69xK+s1sBFqEgOSbaSf9KHc0CYrHVyNhQMaZRruieV7xS+6Pfs0Zvxf1DO6QQTWC2KhkqwFDLvZncAzjoyASdR90hbr+iRPOngQ+HJuE94zemALAwEqNAinzA74PMiJXktqY= # ruby:<token>#commits
|
|
|
|
- secure: ah7UEHBvncXT7bM5mvYIQAO+tIyV/wl7nXLb7wQD16dO2v8Gragy0mWjB79Q09hrrMGmp6H9bCDpdGS80boIA5EHaHoG4QaP0i9bsSt8U2AMWgZtfyIgQKJ4H2kXkGlrjO+AXTgnIkP7LNjdgAVUUTGQPb26T3QmoN2Splt+fIQ= # ruby:<token>#alerts
|
2017-07-27 07:56:54 -04:00
|
|
|
on_pull_requests: false
|
|
|
|
on_success: change
|
|
|
|
on_failure: always
|
2015-03-20 04:43:23 -04:00
|
|
|
|
2017-08-01 22:19:04 -04:00
|
|
|
email:
|
|
|
|
- ko1c-failure@atdot.net
|
|
|
|
|
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:
|