diff options
author | Jun Aruga <jaruga@redhat.com> | 2023-10-27 13:01:37 +0200 |
---|---|---|
committer | Jun Aruga <junaruga@users.noreply.github.com> | 2023-10-27 19:16:13 +0200 |
commit | a0b7574e59a695475815c97dd798f745944bc2df (patch) | |
tree | f1c5b85ae97901b8b3b37cd08832f305f2f03c01 /.travis.yml | |
parent | 7979c009a762d9b447f7ef286af2d314b7c11a6c (diff) |
.travis.yml: Simplify Travis CI.
* Remove CI functions for make test-all.
I want to simplify the `.travis.yml` for us to maintain it easily. When we
need to skip a test, we can fix the test file directly.
I removed the `tool/ci_functions.sh` too. I confirmed the file is not used in
any other files.
* .travis.yml: Remove a notification for IRC channel.
GitHub Actions don't use this notification. The setting is outdated.
* Fix to skip the commit including the document keyword.
There were 2 `if` syntax lines in the file.
* Remove ccache.
Diffstat (limited to '.travis.yml')
-rw-r--r-- | .travis.yml | 129 |
1 files changed, 14 insertions, 115 deletions
diff --git a/.travis.yml b/.travis.yml index bfae9130f3..a2a4dd3f55 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,44 +6,27 @@ # conditions mentioned in the file COPYING are met. Consult the file for # details. -# We only manage non-amd64 free pipelines. +# Note we only manage non-amd64 free pipelines. # https://docs.travis-ci.com/user/billing-overview/ +# 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 OR commit_message !~ /\[DOC\]/ + 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`" + - 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" @@ -51,16 +34,15 @@ env: - optflags=-O1 # -g0 disables backtraces when SEGV. Do not set that. - debugflags=-ggdb3 + - RUBY_TESTOPTS="$JOBS -q --tty=no" .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 @@ -72,8 +54,6 @@ env: openssl zlib1g-dev - # -------- - - &arm64-linux name: arm64-linux arch: arm64 @@ -102,15 +82,11 @@ env: 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 @@ -132,105 +108,28 @@ matrix: - <<: *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. + # Allow failures for the unstable jobs. - 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 gems/src - - chmod -R a-w . - - chmod -R u+w build config_1st config_2nd gems/src .bundle + - ./autogen.sh + - mkdir build - 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 ../configure -C --disable-install-doc --prefix=$(pwd)/install - $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 + - make -s $JOBS install 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 # 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 + - $SETARCH make -s test + - ../tool/travis_wait.sh $SETARCH make -s test-all RUBYOPT="-w" + - $SETARCH make -s test-spec # 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) |