summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2024-10-23 23:31:51 +0900
committerJun Aruga <junaruga@users.noreply.github.com>2024-10-25 07:05:56 +0200
commite6ddbf181dfebdcc268708b357dde2685046fc89 (patch)
treea752739b236273a25249a529b4c47021ce96d3b4
parent2b985456467da75e59db73a37a4d0980915f78b6 (diff)
[Misc #20810] Reenable Travis CI.
There was a report that the Travis CI's long-term infra issue was addressed by the Travis team on the Ruby Bug ticket 20810. We especially want to test the s390x (big-endian case) on the pull-request. Revert ".travis.yml: Drop all the pipelines due to jobs not starting." This reverts commit c853e48fc17e906c8965d76e09e4553923e4dd75. Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/11948
-rw-r--r--.travis.yml153
1 files changed, 153 insertions, 0 deletions
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000000..8c7d0fa38c
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,153 @@
+# -*- 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://github.com/ruby/ruby/wiki/CI-Servers#travis-ci
+
+# We enable Travis on the specific branches or forked repositories here.
+if: >-
+ (repo != ruby/ruby OR branch = master OR branch =~ /^ruby_\d_\d$/)
+ AND (commit_message !~ /\[DOC\]/)
+
+language: c
+
+os: linux
+
+dist: jammy
+
+git:
+ quiet: true
+
+env:
+ global:
+ - NPROC="$(nproc)"
+ - JOBS="-j${NPROC}"
+ # SETARCH are overridden when necessary. See below.
+ - 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"
+ # -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
+ - &arm64-linux
+ name: arm64-linux
+ arch: arm64
+ <<: *gcc-11
+ - &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 patch
+ # on s390x CPU architecture.
+ # https://github.com/madler/zlib/pull/410
+ - DFLTCC=0
+ - &arm32-linux
+ name: arm32-linux
+ arch: arm64
+ # https://packages.ubuntu.com/jammy/crossbuild-essential-armhf
+ compiler: arm-linux-gnueabihf-gcc
+ env:
+ - SETARCH='setarch linux32 --verbose --32bit'
+ # 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
+ 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
+ libstdc++-10-dev:armhf
+ libffi-dev:armhf
+ libncurses-dev:armhf
+ libncursesw5-dev:armhf
+ libreadline-dev:armhf
+ libssl-dev:armhf
+ libyaml-dev:armhf
+ linux-libc-dev:armhf
+ zlib1g-dev:armhf
+
+matrix:
+ include:
+ - <<: *arm64-linux
+ - <<: *ppc64le-linux
+ - <<: *s390x-linux
+ # 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
+ - <<: *arm32-linux
+ allow_failures:
+ # The arm64 is very slow to start the jobs.
+ - name: arm64-linux
+ - name: ppc64le-linux
+ - name: s390x-linux
+ # The arm64 is very slow to start the jobs.
+ - name: arm32-linux
+ fast_finish: true
+
+before_script:
+ - lscpu
+ - ./autogen.sh
+ - mkdir build
+ - cd build
+ - $SETARCH ../configure -C --disable-install-doc --prefix=$(pwd)/install
+ - $SETARCH make -s $JOBS
+ - make -s $JOBS install
+ # 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
+
+script:
+ - $SETARCH make -s test
+ - ../tool/travis_wait.sh $SETARCH make -s test-all RUBYOPT="-w"
+ - ../tool/travis_wait.sh $SETARCH 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:
+ - jun.aruga@gmail.com
+ on_success: never
+ on_failure: always