mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
5fa4df0e74
somehow it gets stable there days... Later, we may be able to add wrapper to apply timeout appropriately and dump threads, in case that it stucks. It's not super easy to write it, so this commit just tries to enable osx for now. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65168 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
241 lines
7.2 KiB
YAML
241 lines
7.2 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: trusty
|
|
|
|
sudo: false
|
|
addons:
|
|
apt:
|
|
config:
|
|
retries: true
|
|
update: true
|
|
sources:
|
|
- ubuntu-toolchain-r-test
|
|
packages:
|
|
- gcc-8
|
|
- gcc-8-multilib
|
|
- 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
|
|
|
|
matrix:
|
|
include:
|
|
- name: x86_64-linux --with-jemalloc
|
|
os: linux
|
|
compiler: gcc
|
|
env:
|
|
- "CONFIG_FLAG='--with-gmp --with-jemalloc --with-valgrind'"
|
|
- "JOBS=-j`nproc`"
|
|
- name: x86_64-linux
|
|
os: linux
|
|
compiler: gcc-8
|
|
env:
|
|
- "JOBS=-j`nproc`"
|
|
- name: x86_64-darwin17
|
|
os: osx
|
|
compiler: clang
|
|
env:
|
|
- "CONFIG_FLAG='--with-opt-dir=/usr/local/opt/openssl@1.1:/usr/local/opt/zlib'"
|
|
- "JOBS=\"-j`sysctl -n hw.activecpu`\""
|
|
before_install:
|
|
# Bare "brew update" nukes everything.
|
|
# These steps are very carefully chosen to avoid breaking things.
|
|
- brew_core_dir=/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/
|
|
- git -C $brew_core_dir fetch -q origin
|
|
- git -C $brew_core_dir checkout -q 25590710e3f7af9cfa173c5cd3eb41a0532107b6
|
|
- HOMEBREW_NO_AUTO_UPDATE=1 brew upgrade openssl@1.1
|
|
- /usr/local/opt/openssl@1.1/bin/openssl version
|
|
# - name: uinversal.i386-darwin17
|
|
# os: osx
|
|
# compiler: clang
|
|
# env:
|
|
# - "CONFIG_FLAG='--with-arch=i386'"
|
|
# - "JOBS=\"-j`sysctl -n hw.activecpu`\""
|
|
# - name: uinversal.x86_64h-darwin17
|
|
# os: osx
|
|
# compiler: clang
|
|
# env:
|
|
# - "CONFIG_FLAG='--with-arch=x86_64h'"
|
|
# - "JOBS=\"-j`sysctl -n hw.activecpu`\""
|
|
- name: i686-linux
|
|
os: linux
|
|
sudo: required
|
|
compiler: "'gcc-8 -m32'"
|
|
env:
|
|
- "CONFIG_FLAG='debugflags=-g0'"
|
|
- "JOBS=-j`nproc`"
|
|
- "SETARCH='setarch i686 --verbose --3gb'"
|
|
before_install:
|
|
- sudo dpkg --add-architecture i386
|
|
- sudo apt-get update -qq
|
|
- >-
|
|
sudo apt-get -yq --no-install-suggests --no-install-recommends
|
|
${travis_apt_get_options} install
|
|
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
|
|
- name: pedanticism
|
|
os: linux
|
|
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-extended-offsetof
|
|
-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=(
|
|
optflags=-O0
|
|
debugflags=-g0
|
|
warnflags="${warnflags_array[*]}"
|
|
LDFLAGS=-Wno-unused-command-line-argument)
|
|
- os: linux
|
|
language: ruby
|
|
rvm: 2.3
|
|
name: Running ruby/spec on 2.3 to ensure version guards are correctly added
|
|
addons:
|
|
apt:
|
|
packages:
|
|
before_install:
|
|
install:
|
|
before_script: chmod -R u+w spec/ruby
|
|
script: ruby -C spec/ruby ../mspec/bin/mspec -j .
|
|
allow_failures:
|
|
- name: pedanticism
|
|
fast_finish: true
|
|
|
|
before_script:
|
|
- "echo JOBS=$JOBS 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=--color=never"
|
|
- "$SETARCH make -s $JOBS test-all -o exts TESTOPTS='-q --color=never --job-status=normal' RUBY_FORCE_TEST_JIT=1"
|
|
- "$SETARCH make -s $JOBS test-spec MSPECOPT=-j"
|
|
|
|
# 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:
|