summaryrefslogtreecommitdiff
path: root/.travis.yml
blob: af908042693e82eee8395f4cd4b1d5e60639bfd7 (plain)
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
# 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: c

sudo: false

compiler:
  - gcc

os:
  - linux

before_install:
  - "CONFIG_FLAG="
  - "JOBS='-j 4'"

before_script:
  - "uname -a"
  - "uname -r"
  - "rm -fr .ext autom4te.cache"
  - "echo $TERM"
  - "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 touch-unicode-files"
  - "make after-update BASERUBY=ruby BOOTSTRAPRUBY='$(BASERUBY)' MINIRUBY='$(BASERUBY)' UNICODE_FILES=. PREP= CC=false"
  - "make -s $JOBS"
  - "make update-rubyspec"
  - "requests="
  - "for req in ${RUBYSPEC_PULL_REQUEST//,/ }; do
      requests=\"$requests +refs/pull/$req/merge:\";
    done"
  - "${requests:+git -C spec/rubyspec -c user.email=none -c user.name=none pull --no-edit origin $requests}"
  - "${requests:+git -C spec/rubyspec log --oneline origin/master..@}"

script:
  - "make -s test TESTOPTS=--color=never"
  - "make -s test-all TESTOPTS='-q -j3 --color=never --job-status=normal'"
  - "make -s test-rubyspec MSPECOPT=-fm"

# Branch matrix.  Not all branches are Travis-ready so we limit branches here.
branches:
  only:
    - trunk
    - ruby_2_1
    - ruby_2_2
    - ruby_2_3
    - ruby_2_4
    - /^feature\//
    - /^bug\//

# We want to be notified when something happens.
notifications:
  irc:
    channels:
      - "chat.freenode.net#ruby-core"
      - "chat.freenode.net#ruby-ja"
    on_success: change # [always|never|change] # default: always
    on_failure: always # [always|never|change] # default: always
    template:
      - "%{message} by @%{author}: See %{build_url}"

  email:
    - ko1c-failure@atdot.net
    - shibata.hiroshi@gmail.com

# Local Variables:
# mode: YAML
# coding: utf-8-unix
# indent-tabs-mode: nil
# tab-width: 4
# fill-column: 79
# default-justification: full
# End: