summaryrefslogtreecommitdiff
path: root/.travis.yml
blob: ca68ed20abd91fd3e63d68337d6b82c2c7b09df2 (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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# -*- YAML -*-
# 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.

# When you see Travis CI issues, or you are interested in understanding how to
# manage, please check the link below.
# https://.com/ruby/ruby/wiki/CI-Servers#travis-ci

# We enable Travis on the specific branches or forked repositories here.
# https://docs.travis-ci.com/user/conditions-v1
if: >-
  (fork OR branch = master OR branch =~ /^ruby_\d_\d$/)
  AND (commit_message !~ /(\[DOC\]|Document)/)
  AND NOT (type = 'push' AND sender =~ /\[bot\]/)

language: c

os: linux

dist: jammy

git:
  quiet: true

env:
  global:
    - NPROC="$(nproc)"
    - JOBS="-j${NPROC}"
    # https://.com/travis-ci/travis-build/blob/e411371dda21430a60f61b8f3f57943d2fe4d344/lib/travis/build/bash/travis_apt_get_options.bash#L7
    - travis_apt_get_options='--allow-downgrades --allow-remove-essential --allow-change-held-packages'
    - travis_apt_get_options="-yq --no-install-suggests --no-install-recommends $travis_apt_get_options"
    # -g0 disables backtraces when SEGV. Do not set that.
    - debugflags=-ggdb3
    - RUBY_TESTOPTS="$JOBS -q --tty=no"

.org.ruby-lang.ci.matrix-definitions:
  - &gcc-11
    compiler: gcc-11
    before_install:
      - tool/travis_retry.sh sudo bash -c "rm -rf '${TRAVIS_ROOT}/var/lib/apt/lists/'* && exec apt-get update -yq"
      - >-
        tool/travis_retry.sh sudo -E apt-get $travis_apt_get_options install
        gcc-11
        g++-11
        libffi-dev
        libncurses-dev
        libncursesw5-dev
        libreadline-dev
        libssl-dev
        libyaml-dev
        openssl
        zlib1g-dev
      - gcc-11 --version
  - &ppc64le-linux
    name: ppc64le-linux
    arch: ppc64le
    <<: *gcc-11
  - &s390x-linux
    name: s390x-linux
    arch: s390x
    <<: *gcc-11
    env:
      # Avoid possible test failures with the zlib applying the following 
      # on s390x CPU architecture.
      # https://.com/madler/zlib/pull/410
      - DFLTCC=0

matrix:
  include:
    - <<: *ppc64le-linux
    - <<: *s390x-linux
  allow_failures:
    - name: ppc64le-linux
    - name: s390x-linux
  fast_finish: true

before_script:
  - lscpu
  - ./autogen.sh
  - mkdir build
  - cd build
  - ../configure -C --disable-install-doc --prefix=$(pwd)/install
  - make -s $JOBS
  - make -s $JOBS install
  # Useful info to report issues to the Ruby.
  - $(pwd)/install/bin/ruby -v
  # Useful info To report issues to the RubyGems.
  - $(pwd)/install/bin/gem env

script:
  - make -s test
  - ../tool/travis_wait.sh make -s test-all RUBYOPT="-w"
  - ../tool/travis_wait.sh make -s test-spec

# We want to be notified when something happens.
notifications:
  webhooks:
    urls:
      # ruby-lang slack: ruby/simpler-alerts-bot (travis)
      - secure: mRsoS/UbqDkKkW5p3AEqM27d4SZnV6Gsylo3bm8T/deltQzTsGzZwrm7OIBXZv0UFZdE68XmPlyHfZFLSP2V9QZ7apXMf9/vw0GtcSe1gchtnjpAPF6lYBn7nMCbVPPx9cS0dwL927fjdRM1vj7IKZ2bk4F0lAJ25R25S6teqdk=
    on_success: never
    on_failure: always
  email:
    recipients:
      - [email protected]
    on_success: never
    on_failure: always