1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/.travis.yml
shyouhei 3b257773a5 .travis.yml: specify --tty=no
To reduce the amount of output, prefer --tty=no instead of
--color=never.  This option not only disables color output but also
kill some tty-related features, like spinners.  Travis limits its
output by the physical size of the log, not by the number of lines.
This change should make more room for new logs.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65702 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-13 04:55:43 +00:00

353 lines
9.1 KiB
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.
# 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.
language: c
dist: xenial
osx_image: xcode10.1
sudo: false
addons:
apt:
config:
retries: true
update: true
sources:
- ubuntu-toolchain-r-test
packages:
- gcc-8
- libffi-dev
- libgdbm-dev
- libgmp-dev
- libjemalloc-dev
- libncurses5-dev
- libncursesw5-dev
- libreadline6-dev
- libssl-dev
- libyaml-dev
- openssl
- valgrind
- zlib1g-dev
homebrew:
packages:
- gdbm
- gmp
- libffi
- openssl@1.1
- zlib
env:
global:
- "CONFIGURE_TTY=no"
.org.ruby-lang.ci.matrix-definitions:
- &cron-only
if: (type = cron) AND (branch = trunk) AND (fork = false)
- &make-test-only
script:
- "$SETARCH make -s test TESTOPTS=--color=never"
- &linux
os: linux
compiler: gcc-8
- &osx
os: osx
compiler: clang
before_install:
- /usr/local/opt/openssl@1.1/bin/openssl version
# --------
- &x86_64-linux
name: x86_64-linux
<<: *linux
- &jemalloc
name: --with-jemalloc
<<: *linux
<<: *cron-only
env:
- "CONFIG_FLAG='--with-gmp --with-jemalloc --with-valgrind'"
- &VM_CHECK_MODE
name: VM_CHECK_MODE=3
<<: *linux
<<: *cron-only
<<: *make-test-only
env:
- "CFLAGS=-DVM_CHECK_MODE=0x0003"
- &FIBER_USE_sjlj
name: FIBER_USE_NATIVE=0
<<: *linux
<<: *cron-only
env:
- "CFLAGS=-DFIBER_USE_NATIVE=0"
- &TOKEN_THREADED_CODE
name: TOKEN_THREADED_CODE
<<: *linux
<<: *cron-only
<<: *make-test-only
env:
- "CFLAGS=-DOPT_THREADED_CODE=1"
- &CALL_THREADED_CODE
name: CALL_THREADED_CODE
<<: *linux
<<: *cron-only
<<: *make-test-only
env:
- "CFLAGS=-DOPT_THREADED_CODE=2"
- &NO_THREADED_CODE
name: NO_THREADED_CODE
<<: *linux
<<: *cron-only
<<: *make-test-only
env:
- "CFLAGS=-DOPT_THREADED_CODE=3"
- &ASAN
name: -fsanitize=address
<<: *linux
#<<: *cron-only
<<: *make-test-only
compiler: clang
env:
- "ASAN_OPTIONS=detect_leaks=0"
- "CFLAGS='-ggdb3 -O1 -march=native -fsanitize=address -fno-omit-frame-pointer'"
- "LD=clang"
- "LDFLAGS=-fsanitize=address"
- &MSAN
name: -fsanitize=memory
<<: *linux
#<<: *cron-only
<<: *make-test-only
compiler: clang
env:
- "CFLAGS='-fsanitize=memory'"
- "LD=clang"
- "LDFLAGS=-fsanitize=memory"
- &UBSAN
name: -fsanitize=undefined
<<: *linux
#<<: *cron-only
<<: *make-test-only
compiler: clang
env:
- "CFLAGS='-ggdb3 -O1 -march=native -fsanitize=undefined,integer,nullability -fno-omit-frame-pointer -DUNALIGNED_WORD_ACCESS=0'"
- "LD=clang"
- "LDFLAGS=-fsanitize=undefined,integer,nullability"
- &i686-linux
name: i686-linux
<<: *linux
sudo: required
compiler: "'gcc-8 -m32'"
env:
- "CONFIG_FLAG='debugflags=-g0'"
- "SETARCH='setarch i686 --verbose --3gb'"
addons:
apt:
config:
retries: true
update: true
sources:
- ubuntu-toolchain-r-test
packages:
- gcc-8-multilib
- 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
- &pedanticism
name: "-ansi -pedantic"
<<: *linux
<<: *make-test-only
compiler: "'clang -ansi -Werror=pedantic -pedantic-errors -std=iso9899:1990'"
env:
- "CONFIG_FLAG="
- "JOBS="
# construct warnflags (using bashism...)
before_install: |
warnflags_array=(
-Wall
-Wextra
-Werror=declaration-after-statement
-Werror=deprecated-declarations
-Werror=division-by-zero
-Werror=extra-tokens
-Werror=implicit-function-declaration
-Werror=implicit-int
-Werror=long-long
-Werror=pointer-arith
-Werror=shorten-64-to-32
-Werror=write-strings
-Wmissing-noreturn
-Wno-constant-logical-operand
-Wno-missing-field-initializers
-Wno-overlength-strings
-Wno-parentheses-equality
-Wno-self-assign
-Wno-tautological-compare
-Wno-unused-local-typedef
-Wno-unused-parameter
-Wunused-variable
)
CONFIG_FLAG_ARRAY=(
warnflags="${warnflags_array[*]}"
LDFLAGS=-Wno-unused-command-line-argument)
- &rubyspec
name: ruby/spec on Ruby 2.3 # to ensure version guards are correctly added
<<: *linux
language: ruby
rvm: 2.3.8
addons:
apt:
packages:
before_install:
install:
before_script: chmod -R u+w spec/ruby
# -j randomly hangs. Using -fs to make sure we can know problematic spec on failure.
script: ruby -C spec/ruby ../mspec/bin/mspec -fs .
- &x86_64-darwin17
name: x86_64-darwin17
<<: *osx
env:
- "CONFIG_FLAG='--with-opt-dir=/usr/local/opt/openssl@1.1:/usr/local/opt/zlib'"
- "JOBS=\"-j`sysctl -n hw.activecpu`\""
- &universal-darwin17
name: uinversal.x86_64h-darwin17
<<: *osx
<<: *cron-only
<<: *make-test-only
env:
- "CONFIG_FLAG='--with-arch=x86_64h,x86_64,i386'"
- "JOBS=\"-j`sysctl -n hw.activecpu`\""
matrix:
include:
# to reduce time for finishing all jobs, run the slowest osx build first.
- <<: *x86_64-darwin17
- <<: *universal-darwin17
- <<: *x86_64-linux
- <<: *i686-linux
- <<: *jemalloc
- <<: *pedanticism
- <<: *ASAN
- <<: *MSAN
- <<: *UBSAN
- <<: *VM_CHECK_MODE
- <<: *FIBER_USE_sjlj
- <<: *TOKEN_THREADED_CODE
- <<: *CALL_THREADED_CODE
- <<: *NO_THREADED_CODE
- <<: *rubyspec
allow_failures:
- os: osx
- name: uinversal.x86_64h-darwin17
- name: -fsanitize=address
- name: -fsanitize=memory
- name: -fsanitize=undefined
fast_finish: true
before_script:
- "echo JOBS=${JOBS=-j`nproc`} SETARCH=${SETARCH=}"
- "$SETARCH uname -a"
- "$SETARCH uname -r"
- "rm -fr .ext autom4te.cache"
- "echo $TERM"
- "> config.status"
- "sed -f tool/prereq.status Makefile.in common.mk > Makefile"
- "make update-config_files"
- "make touch-unicode-files"
- "make -s $JOBS srcs UNICODE_FILES=."
- "rm config.status Makefile rbconfig.rb .rbconfig.time"
- "mkdir build config_1st config_2nd"
- "chmod -R a-w ."
- "chmod u+w build config_1st config_2nd"
- "cd build"
- "$SETARCH ../configure -C --disable-install-doc --prefix=/tmp/ruby-prefix --with-gcc=\"$CC\" $CONFIG_FLAG \"${CONFIG_FLAG_ARRAY[@]}\""
- "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)"
- "$SETARCH make -s $JOBS && make install"
script:
- "$SETARCH make -s test TESTOPTS=\"${TESTOPTS=$JOBS -q --tty=no}\""
- "$SETARCH make -s test-all -o exts TESTOPTS=\"${TEST_ALL_OPTS=$TESTOPTS}\""
- "$SETARCH make -s test-spec MSPECOPT=-ff" # not using `-j` because sometimes `mspec -j` silently dies
# Branch matrix. Not all branches are Travis-ready so we limit branches here.
branches:
only:
- trunk
- ruby_2_3
- ruby_2_4
- ruby_2_5
- /^feature\//
- /^bug\//
- /^travis-/
# We want to be notified when something happens.
notifications:
irc:
channels:
- "chat.freenode.net#ruby-core"
- "chat.freenode.net#ruby-ja"
on_success: change # [always|never|change] # default: always
on_failure: always # [always|never|change] # default: always
template:
- "%{message} by @%{author}: See %{build_url}"
slack:
rooms:
- secure: i1GLETSKye85ea6dGNA3MxI/5myChmMFiZtBd5C69xK+s1sBFqEgOSbaSf9KHc0CYrHVyNhQMaZRruieV7xS+6Pfs0Zvxf1DO6QQTWC2KhkqwFDLvZncAzjoyASdR90hbr+iRPOngQ+HJuE94zemALAwEqNAinzA74PMiJXktqY= # ruby:<token>#commits
- secure: ah7UEHBvncXT7bM5mvYIQAO+tIyV/wl7nXLb7wQD16dO2v8Gragy0mWjB79Q09hrrMGmp6H9bCDpdGS80boIA5EHaHoG4QaP0i9bsSt8U2AMWgZtfyIgQKJ4H2kXkGlrjO+AXTgnIkP7LNjdgAVUUTGQPb26T3QmoN2Splt+fIQ= # ruby:<token>#alerts
on_pull_requests: false
on_success: change
on_failure: always
email:
- ko1c-failure@atdot.net
# Local Variables:
# mode: YAML
# coding: utf-8-unix
# indent-tabs-mode: nil
# tab-width: 4
# fill-column: 79
# default-justification: full
# End: