summaryrefslogtreecommitdiff
path: root/tool
diff options
context:
space:
mode:
authorJun Aruga <jaruga@redhat.com>2021-05-25 10:24:45 +0200
committerJun Aruga <junaruga@users.noreply.github.com>2021-05-25 12:38:05 +0200
commit9d4266fd5555c9c4388e2e8592008d0e0d8ccf21 (patch)
tree5a0518f88b3bf09ed4a8c909019c5bec60397b84 /tool
parent83efb2e47cd5648dfff3d416820003b44f77bb44 (diff)
downloadruby-9d4266fd5555c9c4388e2e8592008d0e0d8ccf21.tar.gz
.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
Diffstat (limited to 'tool')
-rw-r--r--tool/ci_functions.sh29
-rwxr-xr-xtool/travis_wait.sh18
2 files changed, 47 insertions, 0 deletions
diff --git a/tool/ci_functions.sh b/tool/ci_functions.sh
new file mode 100644
index 0000000000..f0e888e3df
--- /dev/null
+++ b/tool/ci_functions.sh
@@ -0,0 +1,29 @@
+# -*- BASH -*-
+# Manage functions used on a CI.
+# Run `. tool/ci_functions.sh` to use it.
+
+# Create options with patterns `-n !/name1/ -n !/name2/ ..` to exclude the test
+# method names by the method names `name1 name2 ..`.
+# See `ruby tool/test/runner.rb --help` `-n` option.
+function ci_to_excluded_test_opts {
+ local tests_str="${1}"
+ # Use the backward matching `!/name$/`, as the perfect matching does not work.
+ # https://bugs.ruby-lang.org/issues/16936
+ ruby <<EOF
+ opts = "${tests_str}".split.map { |test| "-n \!/#{test}\$$/" }
+ puts opts.join(' ')
+EOF
+ return 0
+}
+
+# Create options with patterns `-n /name1/ -n /name2/ ..` to exclude the test
+# method names by the method names `name1 name2 ..`.
+# See `ruby tool/test/runner.rb --help` `-n` option.
+function ci_to_included_test_opts {
+ local tests_str="${1}"
+ ruby <<EOF
+ opts = "${tests_str}".split.map { |test| "-n #{test}" }
+ puts opts.join(' ')
+EOF
+ return 0
+}
diff --git a/tool/travis_wait.sh b/tool/travis_wait.sh
new file mode 100755
index 0000000000..471b765df8
--- /dev/null
+++ b/tool/travis_wait.sh
@@ -0,0 +1,18 @@
+#!/bin/bash -eu
+# The modified version of `travis_wait` to output a log as the command goes.
+# https://github.com/travis-ci/travis-ci/issues/4190#issuecomment-353342526
+
+# Produce an output log every 9 minutes as the timeout without output is 10
+# minutes. A job finishes with a timeout if it takes longer than 50 minutes.
+# https://docs.travis-ci.com/user/customizing-the-build#build-timeouts
+while sleep 9m; do
+ # Print message with bash variable SECONDS.
+ echo "====[ $SECONDS seconds still running ]===="
+done &
+
+echo "+ $@"
+"$@"
+
+jobs
+kill %1
+exit 0