зеркало из https://github.com/github/ruby.git
Revert "Remove .travis.yml" to revive Travis.
This reverts commit 6b978d5427
.
This commit is contained in:
Родитель
55cd3e4ebf
Коммит
4f735903c2
|
@ -0,0 +1,291 @@
|
|||
# -*- 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
|
||||
|
||||
os: linux
|
||||
|
||||
dist: xenial
|
||||
|
||||
git:
|
||||
quiet: true
|
||||
|
||||
cache:
|
||||
ccache: true
|
||||
directories:
|
||||
- $HOME/config_2nd
|
||||
- $HOME/.downloaded-cache
|
||||
|
||||
env:
|
||||
global:
|
||||
# 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`"
|
||||
# JOBS and SETARCH are overridden when necessary; see below.
|
||||
- JOBS=-j$((1+${NPROC}))
|
||||
- SETARCH=
|
||||
- RUBY_PREFIX=/tmp/ruby-prefix
|
||||
- GEMS_FOR_TEST='timezone tzinfo'
|
||||
- UPDATE_UNICODE="UNICODE_FILES=. UNICODE_PROPERTY_FILES=. UNICODE_AUXILIARY_FILES=. UNICODE_EMOJI_FILES=."
|
||||
- BEFORE_INSTALL=true
|
||||
# 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"
|
||||
|
||||
.org.ruby-lang.ci.matrix-definitions:
|
||||
|
||||
- &make-test-only
|
||||
script:
|
||||
- $SETARCH make -s test TESTOPTS="${TESTOPTS=$JOBS -q --tty=no}"
|
||||
|
||||
- &gcc-8
|
||||
compiler: gcc-8
|
||||
# # Not using addon to control retries
|
||||
# addons:
|
||||
# apt:
|
||||
# sources:
|
||||
# - ubuntu-toolchain-r-test
|
||||
before_install:
|
||||
- bash -cx "${BEFORE_INSTALL}"
|
||||
- tool/travis_retry.sh sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
|
||||
- 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-8
|
||||
g++-8
|
||||
libffi-dev
|
||||
libgdbm-dev
|
||||
libncurses5-dev
|
||||
libncursesw5-dev
|
||||
libreadline6-dev
|
||||
libssl-dev
|
||||
libyaml-dev
|
||||
openssl
|
||||
zlib1g-dev
|
||||
|
||||
- &clang-8
|
||||
compiler: clang-8
|
||||
addons:
|
||||
apt:
|
||||
# Not doing this manually unlike other sources, because it has been stable.
|
||||
sources:
|
||||
- llvm-toolchain-xenial-8
|
||||
config:
|
||||
retries: true
|
||||
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
|
||||
clang-8
|
||||
llvm-8-tools
|
||||
libffi-dev
|
||||
libgdbm-dev
|
||||
libncurses5-dev
|
||||
libncursesw5-dev
|
||||
libreadline6-dev
|
||||
libssl-dev
|
||||
libyaml-dev
|
||||
openssl
|
||||
zlib1g-dev
|
||||
|
||||
# --------
|
||||
|
||||
- &x86_64-linux
|
||||
name: x86_64-linux
|
||||
<<: *gcc-8
|
||||
|
||||
- &arm64-linux
|
||||
name: arm64-linux
|
||||
arch: arm64
|
||||
<<: *gcc-8
|
||||
|
||||
- &s390x-linux
|
||||
name: s390x-linux
|
||||
arch: s390x
|
||||
<<: *gcc-8
|
||||
|
||||
- &i686-linux
|
||||
name: i686-linux
|
||||
compiler: gcc-8
|
||||
env:
|
||||
- GCC_FLAGS=-m32
|
||||
- CXX='g++-8 -m32'
|
||||
- debugflags=-g0
|
||||
- SETARCH='setarch i686 --verbose --3gb'
|
||||
# # Not using addon to control retries
|
||||
# addons:
|
||||
# apt:
|
||||
# sources:
|
||||
# - ubuntu-toolchain-r-test
|
||||
before_install:
|
||||
- tool/travis_retry.sh sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
|
||||
- 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
|
||||
gcc-8-multilib
|
||||
g++-8
|
||||
g++-8-multilib
|
||||
libstdc++-8-dev:i386
|
||||
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
|
||||
|
||||
- &arm32-linux
|
||||
name: arm32-linux
|
||||
arch: arm64
|
||||
# https://packages.ubuntu.com/xenial/crossbuild-essential-armhf
|
||||
compiler: arm-linux-gnueabihf-gcc
|
||||
env:
|
||||
- debugflags=-g0
|
||||
- SETARCH='setarch linux32 --verbose --32bit'
|
||||
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++-5-dev:armhf
|
||||
libffi-dev:armhf
|
||||
libffi6:armhf
|
||||
libgdbm-dev:armhf
|
||||
libgdbm3:armhf
|
||||
libncurses5-dev:armhf
|
||||
libncurses5:armhf
|
||||
libncursesw5-dev:armhf
|
||||
libreadline6-dev:armhf
|
||||
libreadline6:armhf
|
||||
libssl-dev:armhf
|
||||
libssl1.0.0:armhf
|
||||
linux-libc-dev:armhf
|
||||
zlib1g-dev:armhf
|
||||
zlib1g:armhf
|
||||
|
||||
matrix:
|
||||
include:
|
||||
# Build every commit:
|
||||
- <<: *i686-linux
|
||||
# Build every commit (Allowed Failures):
|
||||
- <<: *arm32-linux
|
||||
- <<: *arm64-linux
|
||||
- <<: *s390x-linux
|
||||
allow_failures:
|
||||
- name: arm32-linux
|
||||
- name: arm64-linux
|
||||
- name: s390x-linux
|
||||
fast_finish: true
|
||||
|
||||
before_script:
|
||||
- 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 touch-unicode-files
|
||||
- make -s $JOBS $UPDATE_UNICODE 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
|
||||
- chmod -R a-w .
|
||||
- chmod -R u+w build config_1st config_2nd
|
||||
- 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 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
|
||||
|
||||
script:
|
||||
- $SETARCH make -s test -o showflags TESTOPTS="${TESTOPTS=$JOBS -q --tty=no}"
|
||||
- travis_wait 50 $SETARCH make -s test-all -o exts TESTOPTS="${TESTOPTS} ${TEST_ALL_OPTS}" RUBYOPT="-w"
|
||||
- $SETARCH make -s test-spec MSPECOPT=-ff # not using `-j` because sometimes `mspec -j` silently dies
|
||||
- $SETARCH make -s -o showflags leaked-globals
|
||||
|
||||
# Branch matrix. Not all branches are Travis-ready so we limit branches here.
|
||||
branches:
|
||||
only:
|
||||
- master
|
||||
- ruby_2_4
|
||||
- ruby_2_5
|
||||
- ruby_2_6
|
||||
- ruby_2_7
|
||||
|
||||
# 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)
|
||||
on_success: never
|
||||
on_failure: always
|
||||
|
||||
email:
|
||||
- ko1c-failure@atdot.net
|
Загрузка…
Ссылка в новой задаче