2021-05-05 19:10:41 +03:00
|
|
|
# -*- 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.
|
|
|
|
|
2023-10-28 13:28:43 +03:00
|
|
|
# When you see Travis CI issues, or you are interested in understanding how to
|
|
|
|
# manage, please check the link below.
|
|
|
|
# https://github.com/ruby/ruby/wiki/CI-Servers#travis-ci
|
2021-05-05 19:10:41 +03:00
|
|
|
|
2023-10-27 14:01:37 +03:00
|
|
|
# We enable Travis on the specific branches or forked repositories here.
|
2023-12-17 15:17:48 +03:00
|
|
|
if: >-
|
|
|
|
(repo != ruby/ruby OR branch = master OR branch =~ /^ruby_\d_\d$/)
|
|
|
|
AND (commit_message !~ /\[DOC\]/)
|
2023-10-27 14:01:37 +03:00
|
|
|
|
2021-05-05 19:10:41 +03:00
|
|
|
language: c
|
|
|
|
|
|
|
|
os: linux
|
|
|
|
|
2023-10-23 16:41:00 +03:00
|
|
|
dist: jammy
|
2021-05-05 19:10:41 +03:00
|
|
|
|
|
|
|
git:
|
|
|
|
quiet: true
|
|
|
|
|
|
|
|
env:
|
|
|
|
global:
|
2023-10-27 14:01:37 +03:00
|
|
|
- NPROC="$(nproc)"
|
2023-11-03 14:44:36 +03:00
|
|
|
- JOBS="-j${NPROC}"
|
2023-10-28 13:28:43 +03:00
|
|
|
# SETARCH are overridden when necessary. See below.
|
2021-05-05 19:10:41 +03:00
|
|
|
- SETARCH=
|
|
|
|
# https://github.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"
|
2023-10-28 13:28:43 +03:00
|
|
|
# -g0 disables backtraces when SEGV. Do not set that.
|
2021-05-25 11:24:45 +03:00
|
|
|
- debugflags=-ggdb3
|
2023-10-27 14:01:37 +03:00
|
|
|
- RUBY_TESTOPTS="$JOBS -q --tty=no"
|
2021-05-05 19:10:41 +03:00
|
|
|
|
|
|
|
.org.ruby-lang.ci.matrix-definitions:
|
2023-10-23 16:41:00 +03:00
|
|
|
- &gcc-11
|
|
|
|
compiler: gcc-11
|
2021-05-05 19:10:41 +03:00
|
|
|
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
|
2023-10-23 16:41:00 +03:00
|
|
|
gcc-11
|
|
|
|
g++-11
|
2021-05-05 19:10:41 +03:00
|
|
|
libffi-dev
|
2021-05-25 11:24:45 +03:00
|
|
|
libncurses-dev
|
2021-05-05 19:10:41 +03:00
|
|
|
libncursesw5-dev
|
2020-06-01 04:44:08 +03:00
|
|
|
libreadline-dev
|
2021-05-05 19:10:41 +03:00
|
|
|
libssl-dev
|
|
|
|
libyaml-dev
|
|
|
|
openssl
|
|
|
|
zlib1g-dev
|
2023-10-23 16:41:00 +03:00
|
|
|
- gcc-11 --version
|
2021-05-05 19:10:41 +03:00
|
|
|
- &arm64-linux
|
|
|
|
name: arm64-linux
|
|
|
|
arch: arm64
|
2023-10-23 16:41:00 +03:00
|
|
|
<<: *gcc-11
|
2021-05-25 11:24:45 +03:00
|
|
|
- &ppc64le-linux
|
|
|
|
name: ppc64le-linux
|
|
|
|
arch: ppc64le
|
2023-10-23 16:41:00 +03:00
|
|
|
<<: *gcc-11
|
2021-05-05 19:10:41 +03:00
|
|
|
- &s390x-linux
|
|
|
|
name: s390x-linux
|
|
|
|
arch: s390x
|
2023-11-03 16:20:14 +03:00
|
|
|
<<: *gcc-11
|
2023-09-29 19:16:58 +03:00
|
|
|
env:
|
|
|
|
# Avoid possible test failures with the zlib applying the following patch
|
|
|
|
# on s390x CPU architecture.
|
|
|
|
# https://github.com/madler/zlib/pull/410
|
|
|
|
- DFLTCC=0
|
2021-05-05 19:10:41 +03:00
|
|
|
- &arm32-linux
|
|
|
|
name: arm32-linux
|
|
|
|
arch: arm64
|
2023-10-23 16:41:00 +03:00
|
|
|
# https://packages.ubuntu.com/jammy/crossbuild-essential-armhf
|
2021-05-05 19:10:41 +03:00
|
|
|
compiler: arm-linux-gnueabihf-gcc
|
|
|
|
env:
|
|
|
|
- SETARCH='setarch linux32 --verbose --32bit'
|
2023-10-28 13:19:23 +03:00
|
|
|
# Still keep the -O1 for only arm32, while we want to test with the
|
|
|
|
# default optflags -O3.
|
|
|
|
# Because bootstraptest/test_ractor.rb fails with segfualt with the
|
|
|
|
# default -O3.
|
|
|
|
# https://bugs.ruby-lang.org/issues/19981
|
|
|
|
- optflags=-O1
|
2021-05-05 19:10:41 +03:00
|
|
|
before_install:
|
|
|
|
- sudo dpkg --add-architecture armhf
|
|
|
|
- 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
|
|
|
|
crossbuild-essential-armhf
|
|
|
|
libc6:armhf
|
2021-05-25 11:24:45 +03:00
|
|
|
libstdc++-10-dev:armhf
|
2021-05-05 19:10:41 +03:00
|
|
|
libffi-dev:armhf
|
2021-05-25 11:24:45 +03:00
|
|
|
libncurses-dev:armhf
|
2021-05-05 19:10:41 +03:00
|
|
|
libncursesw5-dev:armhf
|
2021-05-25 11:24:45 +03:00
|
|
|
libreadline-dev:armhf
|
2021-05-05 19:10:41 +03:00
|
|
|
libssl-dev:armhf
|
2022-09-14 18:58:54 +03:00
|
|
|
libyaml-dev:armhf
|
2021-05-05 19:10:41 +03:00
|
|
|
linux-libc-dev:armhf
|
|
|
|
zlib1g-dev:armhf
|
2020-06-01 04:44:08 +03:00
|
|
|
|
2021-05-05 19:10:41 +03:00
|
|
|
matrix:
|
|
|
|
include:
|
2023-11-10 14:27:13 +03:00
|
|
|
- <<: *arm64-linux
|
|
|
|
- <<: *ppc64le-linux
|
2024-01-30 22:38:02 +03:00
|
|
|
- <<: *s390x-linux
|
2023-11-03 18:02:57 +03:00
|
|
|
# FIXME: lib/rubygems/util.rb:104 glob_files_in_dir -
|
|
|
|
# <internal:dir>:411:in glob: File name too long - (Errno::ENAMETOOLONG)
|
|
|
|
# https://github.com/rubygems/rubygems/issues/7132
|
2021-05-05 19:10:41 +03:00
|
|
|
- <<: *arm32-linux
|
|
|
|
allow_failures:
|
2023-10-27 14:01:37 +03:00
|
|
|
# Allow failures for the unstable jobs.
|
2023-11-10 14:27:13 +03:00
|
|
|
# - name: arm64-linux
|
2023-10-30 19:31:19 +03:00
|
|
|
# - name: ppc64le-linux
|
2023-11-24 02:06:14 +03:00
|
|
|
# - name: s390x-linux
|
2023-11-10 14:27:13 +03:00
|
|
|
# The 2nd arm64 pipeline may be unstable.
|
|
|
|
# - name: arm32-linux
|
2021-05-05 19:10:41 +03:00
|
|
|
fast_finish: true
|
|
|
|
|
|
|
|
before_script:
|
2023-10-27 14:01:37 +03:00
|
|
|
- ./autogen.sh
|
|
|
|
- mkdir build
|
2021-05-05 19:10:41 +03:00
|
|
|
- cd build
|
2023-10-27 14:01:37 +03:00
|
|
|
- $SETARCH ../configure -C --disable-install-doc --prefix=$(pwd)/install
|
2021-05-05 19:10:41 +03:00
|
|
|
- $SETARCH make -s $JOBS
|
2023-10-27 14:01:37 +03:00
|
|
|
- make -s $JOBS install
|
2023-11-03 17:21:25 +03:00
|
|
|
# Useful info to report issues to the Ruby.
|
|
|
|
- $SETARCH $(pwd)/install/bin/ruby -v
|
|
|
|
# Useful info To report issues to the RubyGems.
|
|
|
|
- $SETARCH $(pwd)/install/bin/gem env
|
2021-05-05 19:10:41 +03:00
|
|
|
|
|
|
|
script:
|
2023-10-27 14:01:37 +03:00
|
|
|
- $SETARCH make -s test
|
2024-01-26 22:51:25 +03:00
|
|
|
- ../tool/travis_wait.sh $SETARCH make -s test-all RUBYOPT="-w"
|
2024-02-16 20:44:11 +03:00
|
|
|
- ../tool/travis_wait.sh $SETARCH make -s test-spec
|
2021-05-05 19:10:41 +03:00
|
|
|
|
|
|
|
# We want to be notified when something happens.
|
|
|
|
notifications:
|
|
|
|
webhooks:
|
|
|
|
urls:
|
2023-10-28 13:28:43 +03:00
|
|
|
# ruby-lang slack: ruby/simpler-alerts-bot (travis)
|
|
|
|
- secure: mRsoS/UbqDkKkW5p3AEqM27d4SZnV6Gsylo3bm8T/deltQzTsGzZwrm7OIBXZv0UFZdE68XmPlyHfZFLSP2V9QZ7apXMf9/vw0GtcSe1gchtnjpAPF6lYBn7nMCbVPPx9cS0dwL927fjdRM1vj7IKZ2bk4F0lAJ25R25S6teqdk=
|
2021-05-05 19:10:41 +03:00
|
|
|
on_success: never
|
|
|
|
on_failure: always
|
|
|
|
email:
|
2023-12-22 16:26:22 +03:00
|
|
|
recipients:
|
|
|
|
- jaruga@ruby-lang.org
|
|
|
|
on_success: never
|
|
|
|
on_failure: always
|