[前][次][番号順一覧][スレッド一覧]

ruby-changes:66322

From: Jun <ko1@a...>
Date: Tue, 25 May 2021 19:38:29 +0900 (JST)
Subject: [ruby-changes:66322] 9d4266fd55 (master): .travis.yml: Update to use arm64/ppc64le/s390x.

https://git.ruby-lang.org/ruby.git/commit/?id=9d4266fd55

From 9d4266fd5555c9c4388e2e8592008d0e0d8ccf21 Mon Sep 17 00:00:00 2001
From: Jun Aruga <jaruga@r...>
Date: Tue, 25 May 2021 10:24:45 +0200
Subject: .travis.yml: Update to use arm64/ppc64le/s390x.

* Use only the free pipelines arm64/ppc64le/s390x without credits on Travis.
  See <https://docs.travis-ci.com/user/billing-overview/#partner-queue-solution>.
* Add ppc64le case.
* Update the gcc to gcc-11.
* Remove unused logic.
* Add the `tool/travis_wait.sh` to avoid a command timeout.
* Run the tests skipping some failing tests.
  * Set `TEST_ALL_SKIPPED_TESTS` env to skip the tests.
  * Run the tests separately returning ok status.
    The tests are executed if `TEST_ALL_SKIPPED_TESTS` env is set or
    `TEST_ALL_SEPARATED_TESTS` env is set.
  * Add `tool/ci_functions.sh` to manage the functions used in CI.
* Add arm64 to allow_failures due to the following issue.
  An arm64 job sometimes does not start right now.
  https://travis-ci.community/t/11629
---
 .travis.yml          | 388 ++++++++-------------------------------------------
 tool/ci_functions.sh |  29 ++++
 tool/travis_wait.sh  |  18 +++
 3 files changed, 108 insertions(+), 327 deletions(-)
 create mode 100644 tool/ci_functions.sh
 create mode 100755 tool/travis_wait.sh

diff --git a/.travis.yml b/.travis.yml
index a4a21b3..6527116 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -6,16 +6,8 @@ https://github.com/ruby/ruby/blob/trunk/.travis.yml#L6
 # conditions  mentioned in  the file  COPYING are  met.  Consult  the  file for
 # details.
 
-# This is  a Travis-CI  build configuration file.   The list  of configurations
-# available is located in
-#
-#     http://about.travis-ci.org/docs/user/build-configuration/
-#
-# and as Ruby itself is a project written in C language,
-#
-#     http://about.travis-ci.org/docs/user/languages/c/
-#
-# is also a good place to look at.
+# We only manage non-amd64 free pipelines.
+# https://docs.travis-ci.com/user/billing-overview/
 
 language: c
 
@@ -47,29 +39,34 @@ env: https://github.com/ruby/ruby/blob/trunk/.travis.yml#L39
     - RUBY_PREFIX=/tmp/ruby-prefix
     - GEMS_FOR_TEST='timezone tzinfo'
     - UPDATE_UNICODE="UNICODE_FILES=. UNICODE_PROPERTY_FILES=. UNICODE_AUXILIARY_FILES=. UNICODE_EMOJI_FILES=."
-    - BEFORE_INSTALL=true
+    # The tests skipped in `make test-all`.
+    - TEST_ALL_SKIPPED_TESTS=
+    # Run the separated tests with allowing failures.
+    - RUN_SEPARATED_TESTS=true
+    # The tests executed separately by `make test-all`.
+    - TEST_ALL_SEPARATED_TESTS=
     # 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:
 
-  - &make-test-only
-    script:
-      - $SETARCH make -s test TESTOPTS="${TESTOPTS=$JOBS -q --tty=no}"
-
-  - &gcc-9
-    compiler: gcc-9
+  - &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-9
-        g++-9
+        gcc-10
+        g++-10
         libffi-dev
         libgdbm-dev
-        libncurses5-dev
+        libncurses-dev
         libncursesw5-dev
         libreadline-dev
         libssl-dev
@@ -77,215 +74,35 @@ env: https://github.com/ruby/ruby/blob/trunk/.travis.yml#L74
         openssl
         zlib1g-dev
 
-  - &clang-10
-    compiler: clang-10
-    addons:
-      apt:
-        # Not doing this manually unlike other sources, because it has been stable.
-        sources:
-          - llvm-toolchain-xenial-10
-        config:
-          retries: true
-    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
-        clang-10
-        llvm-10-tools
-        libffi-dev
-        libgdbm-dev
-        libncurses5-dev
-        libncursesw5-dev
-        libreadline8-dev
-        libssl-dev
-        libyaml-dev
-        openssl
-        zlib1g-dev
-
   # --------
 
-  - &x86_64-linux
-    name: x86_64-linux
-    <<: *gcc-9
-
   - &arm64-linux
     name: arm64-linux
     arch: arm64
-    <<: *gcc-9
+    <<: *gcc-10
+
+  - &ppc64le-linux
+    name: ppc64le-linux
+    arch: ppc64le
+    <<: *gcc-10
+    env:
+      # FIXME: Skip some failing TestGCCompact tests.
+      # https://bugs.ruby-lang.org/issues/17871
+      - TEST_ALL_SKIPPED_TESTS="test_gc_compact_stats test_complex_hash_keys test_ast_compacts test_compact_count"
+      # The tests crash the process.
+      - RUN_SEPARATED_TESTS=false
 
   - &s390x-linux
     name: s390x-linux
     arch: s390x
-    <<: *gcc-9
-
-  - &jemalloc
-    name: --with-jemalloc
-    <<: *gcc-9
-    <<: *cron-only
-    env:
-      - CONFIG_FLAG='--with-gmp --with-jemalloc --with-valgrind'
-
-  - &assertions
-    name: RUBY_DEBUG=1
-    <<: *gcc-9
-    #<<: *cron-only
-    <<: *make-test-only
-    env:
-      - GEMS_FOR_TEST=
-      - cppflags='-DRUBY_DEBUG -DVM_CHECK_MODE=1 -DTRANSIENT_HEAP_CHECK_MODE -DRGENGC_CHECK_MODE -DENC_DEBUG'
-
-  - &VM_CHECK_MODE
-    name: VM_CHECK_MODE=3
-    <<: *gcc-9
-    <<: *cron-only
-    <<: *make-test-only
-    env:
-      - GEMS_FOR_TEST=
-      - cppflags=-DVM_CHECK_MODE=0x0003
-
-  - &SUPPORT_JOKE
-    name: SUPPORT_JOKE
-    <<: *gcc-9
-    <<: *cron-only
-    <<: *make-test-only
-    env:
-      - BEFORE_INSTALL="sed vm_opts.h -e 's/OPT_SUPPORT_JOKE *0/OPT_SUPPORT_JOKE 1/' -i"
-
-  - &CPDEBUG
-    name: CPDEBUG
-    <<: *gcc-9
-    <<: *cron-only
-    <<: *make-test-only
-    env:
-      - cppflags=-DCPDEBUG
-
-  - &WITH_COROUTINE_UCONTEXT
-    name: COROUTINE=ucontext
-    <<: *gcc-9
-    <<: *cron-only
-    env:
-      - CONFIG_FLAG='--with-coroutine=ucontext'
-
-  - &WITH_COROUTINE_COPY
-    name: COROUTINE=copy
-    <<: *gcc-9
-    <<: *cron-only
-    env:
-      - CONFIG_FLAG='--with-coroutine=copy'
-
-  - &TOKEN_THREADED_CODE
-    name: TOKEN_THREADED_CODE
-    <<: *gcc-9
-    <<: *cron-only
-    <<: *make-test-only
-    env:
-      - GEMS_FOR_TEST=
-      - cppflags=-DOPT_THREADED_CODE=1
-
-  - &CALL_THREADED_CODE
-    name: CALL_THREADED_CODE
-    <<: *gcc-9
-    <<: *cron-only
-    <<: *make-test-only
-    env:
-      - GEMS_FOR_TEST=
-      - cppflags=-DOPT_THREADED_CODE=2
-
-  - &NO_THREADED_CODE
-    name: NO_THREADED_CODE
-    <<: *gcc-9
-    <<: *cron-only
-    <<: *make-test-only
-    env:
-      - GEMS_FOR_TEST=
-      - cppflags=-DOPT_THREADED_CODE=3
-
-  - &ASAN
-    name: -fsanitize=address
-    <<: *clang-8
-    #<<: *cron-only
-    <<: *make-test-only
-    env:
-      - GEMS_FOR_TEST=
-      - ASAN_OPTIONS=detect_leaks=0
-      - cflags='-U_FORTIFY_SOURCE -march=native -fsanitize=address -fno-omit-frame-pointer -fPIC'
-      - debugflags=-ggdb3
-      - optflags=-O1
-      - LD=clang-8
-      - LDFLAGS='-fsanitize=address -fPIC'
-      - CONFIG_FLAG='--with-out-ext=openssl --without-gmp --without-jemalloc --without-valgrind'
-
-  - &MSAN
-    name: -fsanitize=memory
-    <<: *clang-8
-    #<<: *cron-only
-    <<: *make-test-only
-    env:
-      - GEMS_FOR_TEST=
-      - cflags='-U_FORTIFY_SOURCE -fsanitize=memory -fsanitize-memory-track-origins=2 -fno-omit-frame-pointer -fPIC'
-      - optflags=-O1
-      - LD=clang-8
-      - LDFLAGS='-fsanitize=memory -fPIC'
-      - CONFIG_FLAG='--with-out-ext=openssl --without-gmp --without-jemalloc --without-valgrind'
-
-  - &UBSAN
-    name: -fsanitize=undefined
-    <<: *clang-8
-    #<<: *cron-only
-    <<: *make-test-only
-    env:
-      - GEMS_FOR_TEST=
-      - cflags='-U_FORTIFY_SOURCE -fsanitize=undefined,integer,nullability -fno-sanitize=implicit-integer-sign-change,unsigned-integer-overflow'
-      - cppflags=-DUNALIGNED_WORD_ACCESS=0
-      - debugflags=-ggdb3
-      - optflags='-O1 -march=native'
-      - LD=clang-8
-      - LDFLAGS='-fsanitize=undefined,integer,nullability -fno-sanitize=implicit-integer-sign-change,unsigned-integer-overflow'
-
-  - &i686-linux
-    name: i686-linux
-    compiler: gcc-9
-    env:
-      - GCC_FLAGS=-m32
-      - CXX='g++-8 -m32'
-      - debugflags=-g0
-      - SETARCH='setarch i686 --verbose --3gb'
-    # # Not using addon to control retries
-    # addons:
-    #   apt:
-    #     sources:
-    #       - ubuntu-toolchain-r-test
-    before_install:
-      - tool/travis_retry.sh sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
-      - 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-9-multilib
-        g++-8
-        g++-8-multilib
-        libstdc++-8-dev:i386
-        libffi-dev:i386
-        libffi6:i386
-        libgdbm-dev:i386
-        libgdbm3:i386
-        libncurses5-dev:i386
-        libncurses5:i386
-        libncursesw5-dev:i386
-        libreadline6-dev:i386
-        libreadline6:i386
-        libssl-dev:i386
-        libssl1.0.0:i386
-        linux-libc-dev:i386
-        zlib1g-dev:i386
-        zlib1g:i386
+    <<: *gcc-10
 
   - &arm32-linux
     name: arm32-linux
     arch: arm64
-    # https://packages.ubuntu.com/xenial/crossbuild-essential-armhf
+    # https://packages.ubuntu.com/focal/crossbuild-essential-armhf
     compiler: arm-linux-gnueabihf-gcc
     env:
-      - debugflags=-g0
       - SETARCH='setarch linux32 --verbose --32bit'
     before_install:
       - sudo dpkg --add-architecture armhf
@@ -295,132 +112,46 @@ en (... truncated)

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]