jruby-ruby_3_1_0 Apply our changes to socket.rb

Push event #4 passed

  • Ran for
  • Total time
jruby/ruby:.travis.yml@7a056d4
# -*- 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.

# We only manage non-amd64 free pipelines.
# https://docs.travis-ci.com/user/billing-overview/

language: c

os: linux

if: commit_message !~ /^\[DOC\]/

dist: focal

git:
  quiet: true

cache:
  ccache: true
  directories:
    - $HOME/config_2nd
    - $HOME/.downloaded-cache

env:
  global:
    # The tests skipped in `make test-all`.
    - TEST_ALL_SKIPPED_TESTS=
    # The tests executed separately by `make test-all`.
    - TEST_ALL_SEPARATED_TESTS=
    # Reset timestamps early
    - _=$(touch NEWS && find . -type f -exec touch -r NEWS {} +)
    - CONFIGURE_TTY=no
    - CCACHE_COMPILERCHECK=none
    - CCACHE_NOCOMPRESS=1
    - CCACHE_MAXSIZE=512Mi
    - NPROC="`nproc`"
    # JOBS and SETARCH are overridden when necessary; see below.
    - JOBS=-j$((1+${NPROC}))
    - SETARCH=
    - RUBY_PREFIX=/tmp/ruby-prefix
    - GEMS_FOR_TEST='timezone tzinfo'
    # 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"
    # -O1 is faster than -O3 in our tests.
    - optflags=-O1
    # -g0 disables backtraces when SEGV.  Do not set that.
    - debugflags=-ggdb3

.org.ruby-lang.ci.matrix-definitions:

  - &gcc-10
    compiler: gcc-10
    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
        ccache
        gcc-10
        g++-10
        libffi-dev
        libgdbm-dev
        libncurses-dev
        libncursesw5-dev
        libreadline-dev
        libssl-dev
        libyaml-dev
        openssl
        zlib1g-dev

  # --------

  - &arm64-linux
    name: arm64-linux
    arch: arm64
    <<: *gcc-10

  - &ppc64le-linux
    name: ppc64le-linux
    arch: ppc64le
    <<: *gcc-10

  - &s390x-linux
    name: s390x-linux
    arch: s390x
    <<: *gcc-10

  - &arm32-linux
    name: arm32-linux
    arch: arm64
    # https://packages.ubuntu.com/focal/crossbuild-essential-armhf
    compiler: arm-linux-gnueabihf-gcc
    env:
      - SETARCH='setarch linux32 --verbose --32bit'
      # The "TestReadline#test_interrupt_in_other_thread" started failing on arm32
      # from https://www.travis-ci.com/github/ruby/ruby/jobs/529005145
      - TEST_ALL_SKIPPED_TESTS=test_interrupt_in_other_thread
    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
        ccache
        crossbuild-essential-armhf
        libc6:armhf
        libstdc++-10-dev:armhf
        libffi-dev:armhf
        libgdbm-dev:armhf
        libncurses-dev:armhf
        libncursesw5-dev:armhf
        libreadline-dev:armhf
        libssl-dev:armhf
        linux-libc-dev:armhf
        zlib1g-dev:armhf

matrix:
  include:
    # Build every commit (Allowed Failures):
    - <<: *arm32-linux
    # Comment out as the 2nd arm64 pipeline is unstable.
    # - <<: *arm64-linux
    - <<: *ppc64le-linux
    - <<: *s390x-linux
  allow_failures:
    # We see multiple errors indicating errors on the Travis environment itself in a short while:
    # https://app.travis-ci.com/github/ruby/ruby/jobs/544382885
    # https://app.travis-ci.com/github/ruby/ruby/jobs/544361370
    # It's not a fault of Ruby's arm32 support but just Travis arm32 seems unsable.
    - name: arm32-linux
    # - name: arm64-linux
    # We see "Some worker was crashed." in about 40% of recent ppc64le-linux jobs
    # e.g. https://app.travis-ci.com/github/ruby/ruby/jobs/530959548
    - name: ppc64le-linux
    # Tentatively disable, because often hungs up **after** all tests
    # have finished successfully and saving caches.
    - name: s390x-linux
  fast_finish: true

before_script:
  - . tool/ci_functions.sh
  - |-
    if [ -n "${TEST_ALL_SKIPPED_TESTS}" ]; then
      TEST_ALL_OPTS="${TEST_ALL_OPTS} $(ci_to_excluded_test_opts "${TEST_ALL_SKIPPED_TESTS}")"
      if [ -z "${TEST_ALL_SEPARATED_TESTS}" ]; then
        TEST_ALL_SEPARATED_TESTS="${TEST_ALL_SKIPPED_TESTS}"
      fi
    fi
  - |-
    if [ -n "${TEST_ALL_SEPARATED_TESTS}" ]; then
      TEST_ALL_OPTS_SEPARATED="$(ci_to_included_test_opts "${TEST_ALL_SEPARATED_TESTS}")"
    fi
  - echo TEST_ALL_OPTS="${TEST_ALL_OPTS}" TEST_ALL_OPTS_SEPARATED="${TEST_ALL_OPTS_SEPARATED}"
  - rm -fr .ext autom4te.cache
  - |-
    [ -d ~/.downloaded-cache ] ||
    mkdir ~/.downloaded-cache
  - ln -s ~/.downloaded-cache
  - "> config.status"
  - "> .rbconfig.time"
  - sed -f tool/prereq.status template/Makefile.in common.mk > Makefile
  - make -s $JOBS up
  - make -s $JOBS srcs
  - rm -f config.status Makefile rbconfig.rb .rbconfig.time
  - |-
    if [ -d ~/config_2nd ]; then
      cp -pr ~/config_2nd build
    else
      mkdir build
    fi
  - mkdir config_1st config_2nd
  - chmod -R a-w .
  - chmod -R u+w build config_1st config_2nd
  - cd build
  - |-
    case "$CC" in
    gcc*)   CC="ccache $CC${GCC_FLAGS:+ }$GCC_FLAGS -fno-diagnostics-color";;
    clang*) CC="ccache $CC${GCC_FLAGS:+ }$GCC_FLAGS -fno-color-diagnostics";;
    esac
  - |-
    [ ! -f config.cache ] ||
    [ "$CC" = "`sed -n s/^ac_cv_prog_CC=//p config.cache`" ] ||
    (set -x; exec rm config.cache)
  - $SETARCH ../configure -C --disable-install-doc --prefix=$RUBY_PREFIX $CONFIG_FLAG
  - cp -pr config.cache config.status .ext/include ../config_1st
  - $SETARCH make reconfig
  - cp -pr config.cache config.status .ext/include ../config_2nd
  - (cd .. && exec diff -ru config_1st config_2nd)
  - chmod u+w ..
  - rm -rf ~/config_2nd
  - mv ../config_2nd ~
  - chmod u-w ..
  - $SETARCH make -s $JOBS
  - make -s install
  - |-
    [ -z "${GEMS_FOR_TEST}" ] ||
    $RUBY_PREFIX/bin/gem install --no-document $GEMS_FOR_TEST
  - echo "raise 'do not load ~/.irbrc in test'" > ~/.irbrc

script:
  - $SETARCH make -s test -o showflags TESTOPTS="${TESTOPTS=$JOBS -q --tty=no}"
  - ../tool/travis_wait.sh $SETARCH make -s test-all -o exts TESTOPTS="$JOBS -q --tty=no ${TEST_ALL_OPTS}" RUBYOPT="-w"
  # Run the failing tests separately returning ok status to check if it works,
  # visualize them.
  - |
    if [ -n "${TEST_ALL_OPTS_SEPARATED}" ]; then
      $SETARCH make -s test-all -o exts TESTOPTS="$JOBS -v --tty=no ${TEST_ALL_OPTS_SEPARATED}" RUBYOPT="-w" || :
    fi
  - $SETARCH make -s test-spec MSPECOPT=-ff # not using `-j` because sometimes `mspec -j` silently dies
  - $SETARCH make -s -o showflags leaked-globals

# We enable Travis on the specific branches or forked repositories here.
if: (repo = ruby/ruby AND (branch = master OR branch =~ /^ruby_\d_\d$/)) OR repo != ruby/ruby

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

  webhooks:
    urls:
      - secure: mRsoS/UbqDkKkW5p3AEqM27d4SZnV6Gsylo3bm8T/deltQzTsGzZwrm7OIBXZv0UFZdE68XmPlyHfZFLSP2V9QZ7apXMf9/vw0GtcSe1gchtnjpAPF6lYBn7nMCbVPPx9cS0dwL927fjdRM1vj7IKZ2bk4F0lAJ25R25S6teqdk= # ruby-lang slack: ruby/simpler-alerts-bot (travis)
    on_success: never
    on_failure: always

  email:
    - jaruga@ruby-lang.org
Build Config
{
  ".org.ruby-lang.ci.matrix-definitions": [
    {
      "compiler": "gcc-10",
      "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 ccache gcc-10 g++-10 libffi-dev libgdbm-dev libncurses-dev libncursesw5-dev libreadline-dev libssl-dev libyaml-dev openssl zlib1g-dev"
      ]
    },
    {
      "name": "arm64-linux",
      "arch": "arm64",
      "compiler": "gcc-10",
      "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 ccache gcc-10 g++-10 libffi-dev libgdbm-dev libncurses-dev libncursesw5-dev libreadline-dev libssl-dev libyaml-dev openssl zlib1g-dev"
      ]
    },
    {
      "name": "ppc64le-linux",
      "arch": "ppc64le",
      "compiler": "gcc-10",
      "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 ccache gcc-10 g++-10 libffi-dev libgdbm-dev libncurses-dev libncursesw5-dev libreadline-dev libssl-dev libyaml-dev openssl zlib1g-dev"
      ]
    },
    {
      "name": "s390x-linux",
      "arch": "s390x",
      "compiler": "gcc-10",
      "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 ccache gcc-10 g++-10 libffi-dev libgdbm-dev libncurses-dev libncursesw5-dev libreadline-dev libssl-dev libyaml-dev openssl zlib1g-dev"
      ]
    },
    {
      "name": "arm32-linux",
      "arch": "arm64",
      "compiler": "arm-linux-gnueabihf-gcc",
      "env": [
        "SETARCH='setarch linux32 --verbose --32bit'",
        "TEST_ALL_SKIPPED_TESTS=test_interrupt_in_other_thread"
      ],
      "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 ccache crossbuild-essential-armhf libc6:armhf libstdc++-10-dev:armhf libffi-dev:armhf libgdbm-dev:armhf libncurses-dev:armhf libncursesw5-dev:armhf libreadline-dev:armhf libssl-dev:armhf linux-libc-dev:armhf zlib1g-dev:armhf"
      ]
    }
  ],
  "language": "c",
  "os": [
    "linux"
  ],
  "dist": "focal",
  "if": "(repo = ruby/ruby AND (branch = master OR branch =~ /^ruby_\\d_\\d$/)) OR repo != ruby/ruby",
  "git": {
    "quiet": true
  },
  "cache": {
    "ccache": true,
    "directories": [
      "$HOME/config_2nd",
      "$HOME/.downloaded-cache"
    ]
  },
  "env": {
    "global": [
      {
        "TEST_ALL_SKIPPED_TESTS": ""
      },
      {
        "TEST_ALL_SEPARATED_TESTS": ""
      },
      {
        "_": "$(touch NEWS && find . -type f -exec touch -r NEWS {} +)"
      },
      {
        "CONFIGURE_TTY": "no"
      },
      {
        "CCACHE_COMPILERCHECK": "none"
      },
      {
        "CCACHE_NOCOMPRESS": "1"
      },
      {
        "CCACHE_MAXSIZE": "512Mi"
      },
      {
        "NPROC": "\"`nproc`\""
      },
      {
        "JOBS": "-j$((1+${NPROC}))"
      },
      {
        "SETARCH": ""
      },
      {
        "RUBY_PREFIX": "/tmp/ruby-prefix"
      },
      {
        "GEMS_FOR_TEST": "'timezone tzinfo'"
      },
      {
        "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\""
      },
      {
        "optflags": "-O1"
      },
      {
        "debugflags": "-ggdb3"
      }
    ]
  },
  "before_script": [
    ". tool/ci_functions.sh",
    "if [ -n \"${TEST_ALL_SKIPPED_TESTS}\" ]; then\n  TEST_ALL_OPTS=\"${TEST_ALL_OPTS} $(ci_to_excluded_test_opts \"${TEST_ALL_SKIPPED_TESTS}\")\"\n  if [ -z \"${TEST_ALL_SEPARATED_TESTS}\" ]; then\n    TEST_ALL_SEPARATED_TESTS=\"${TEST_ALL_SKIPPED_TESTS}\"\n  fi\nfi",
    "if [ -n \"${TEST_ALL_SEPARATED_TESTS}\" ]; then\n  TEST_ALL_OPTS_SEPARATED=\"$(ci_to_included_test_opts \"${TEST_ALL_SEPARATED_TESTS}\")\"\nfi",
    "echo TEST_ALL_OPTS=\"${TEST_ALL_OPTS}\" TEST_ALL_OPTS_SEPARATED=\"${TEST_ALL_OPTS_SEPARATED}\"",
    "rm -fr .ext autom4te.cache",
    "[ -d ~/.downloaded-cache ] ||\nmkdir ~/.downloaded-cache",
    "ln -s ~/.downloaded-cache",
    "> config.status",
    "> .rbconfig.time",
    "sed -f tool/prereq.status template/Makefile.in common.mk > Makefile",
    "make -s $JOBS up",
    "make -s $JOBS srcs",
    "rm -f config.status Makefile rbconfig.rb .rbconfig.time",
    "if [ -d ~/config_2nd ]; then\n  cp -pr ~/config_2nd build\nelse\n  mkdir build\nfi",
    "mkdir config_1st config_2nd",
    "chmod -R a-w .",
    "chmod -R u+w build config_1st config_2nd",
    "cd build",
    "case \"$CC\" in\ngcc*)   CC=\"ccache $CC${GCC_FLAGS:+ }$GCC_FLAGS -fno-diagnostics-color\";;\nclang*) CC=\"ccache $CC${GCC_FLAGS:+ }$GCC_FLAGS -fno-color-diagnostics\";;\nesac",
    "[ ! -f config.cache ] ||\n[ \"$CC\" = \"`sed -n s/^ac_cv_prog_CC=//p config.cache`\" ] ||\n(set -x; exec rm config.cache)",
    "$SETARCH ../configure -C --disable-install-doc --prefix=$RUBY_PREFIX $CONFIG_FLAG",
    "cp -pr config.cache config.status .ext/include ../config_1st",
    "$SETARCH make reconfig",
    "cp -pr config.cache config.status .ext/include ../config_2nd",
    "(cd .. && exec diff -ru config_1st config_2nd)",
    "chmod u+w ..",
    "rm -rf ~/config_2nd",
    "mv ../config_2nd ~",
    "chmod u-w ..",
    "$SETARCH make -s $JOBS",
    "make -s install",
    "[ -z \"${GEMS_FOR_TEST}\" ] ||\n$RUBY_PREFIX/bin/gem install --no-document $GEMS_FOR_TEST",
    "echo \"raise 'do not load ~/.irbrc in test'\" > ~/.irbrc"
  ],
  "script": [
    "$SETARCH make -s test -o showflags TESTOPTS=\"${TESTOPTS=$JOBS -q --tty=no}\"",
    "../tool/travis_wait.sh $SETARCH make -s test-all -o exts TESTOPTS=\"$JOBS -q --tty=no ${TEST_ALL_OPTS}\" RUBYOPT=\"-w\"",
    "if [ -n \"${TEST_ALL_OPTS_SEPARATED}\" ]; then\n  $SETARCH make -s test-all -o exts TESTOPTS=\"$JOBS -v --tty=no ${TEST_ALL_OPTS_SEPARATED}\" RUBYOPT=\"-w\" || :\nfi\n",
    "$SETARCH make -s test-spec MSPECOPT=-ff",
    "$SETARCH make -s -o showflags leaked-globals"
  ],
  "notifications": {
    "irc": [
      {
        "channels": [
          "chat.freenode.net#ruby-core"
        ],
        "on_success": "change",
        "on_failure": "always",
        "template": [
          "%{message} by @%{author}: See %{build_url}"
        ]
      }
    ],
    "webhooks": [
      {
        "urls": [
          {
            "secure": "mRsoS/UbqDkKkW5p3AEqM27d4SZnV6Gsylo3bm8T/deltQzTsGzZwrm7OIBXZv0UFZdE68XmPlyHfZFLSP2V9QZ7apXMf9/vw0GtcSe1gchtnjpAPF6lYBn7nMCbVPPx9cS0dwL927fjdRM1vj7IKZ2bk4F0lAJ25R25S6teqdk="
          }
        ],
        "on_success": "never",
        "on_failure": "always"
      }
    ],
    "email": [
      {
        "recipients": [
          "jaruga@ruby-lang.org"
        ]
      }
    ]
  },
  "jobs": {
    "include": [
      {
        "name": "arm32-linux",
        "arch": "arm64",
        "compiler": "arm-linux-gnueabihf-gcc",
        "env": [
          {
            "SETARCH": "'setarch linux32 --verbose --32bit'"
          },
          {
            "TEST_ALL_SKIPPED_TESTS": "test_interrupt_in_other_thread"
          }
        ],
        "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 ccache crossbuild-essential-armhf libc6:armhf libstdc++-10-dev:armhf libffi-dev:armhf libgdbm-dev:armhf libncurses-dev:armhf libncursesw5-dev:armhf libreadline-dev:armhf libssl-dev:armhf linux-libc-dev:armhf zlib1g-dev:armhf"
        ]
      },
      {
        "name": "ppc64le-linux",
        "arch": "ppc64le",
        "compiler": "gcc-10",
        "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 ccache gcc-10 g++-10 libffi-dev libgdbm-dev libncurses-dev libncursesw5-dev libreadline-dev libssl-dev libyaml-dev openssl zlib1g-dev"
        ]
      },
      {
        "name": "s390x-linux",
        "arch": "s390x",
        "compiler": "gcc-10",
        "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 ccache gcc-10 g++-10 libffi-dev libgdbm-dev libncurses-dev libncursesw5-dev libreadline-dev libssl-dev libyaml-dev openssl zlib1g-dev"
        ]
      }
    ],
    "allow_failures": [
      {
        "name": "arm32-linux"
      },
      {
        "name": "ppc64le-linux"
      },
      {
        "name": "s390x-linux"
      }
    ],
    "fast_finish": true
  }
}