diff options
author | Jun Aruga <jaruga@redhat.com> | 2021-05-25 10:24:45 +0200 |
---|---|---|
committer | Jun Aruga <junaruga@users.noreply.github.com> | 2021-05-25 12:38:05 +0200 |
commit | 9d4266fd5555c9c4388e2e8592008d0e0d8ccf21 (patch) | |
tree | 5a0518f88b3bf09ed4a8c909019c5bec60397b84 /tool | |
parent | 83efb2e47cd5648dfff3d416820003b44f77bb44 (diff) | |
download | ruby-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.sh | 29 | ||||
-rwxr-xr-x | tool/travis_wait.sh | 18 |
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 |