From e6ddbf181dfebdcc268708b357dde2685046fc89 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Wed, 23 Oct 2024 23:31:51 +0900 Subject: [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 --- .travis.yml | 153 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 153 insertions(+) create mode 100644 .travis.yml 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 - + # :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 -- cgit v1.2.3