mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00

by just randomizing test order.
The original motivation to shard --jit-wait tests was forcing to test
major parts of code without actually stopping to test MJIT after
TracePoint enablement. But it tends to increase the test time because we
often compile the same thing in different shards.
I made this decision because we seem to hit 1.5h timeout of Wercker
these days, and Wercker is really bad at handling timeout (it does not
report timeout as failure, but just keeps it "pending" state)
5c78f15cc9
By randomizing this, we could test things randomly. The downside of this
approach is that we may not be able to find a specific commit that
caused a future failure by having TracePoint in a very early phase.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67158 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
83 lines
3.3 KiB
YAML
83 lines
3.3 KiB
YAML
#
|
|
# Wercker is dedicated for testing MJIT. Please use Travis or AppVeyor for non-MJIT testing.
|
|
# This runs all Ruby tests with --jit, or --jit-wait which synchronously JITs all methods.
|
|
#
|
|
box: ruby:2.5-stretch
|
|
no-response-timeout: 30
|
|
command-timeout: 60
|
|
|
|
# --jit + --jit-wait (test, test-spec)
|
|
mjit-test1:
|
|
steps:
|
|
- install-packages:
|
|
packages: bison sudo
|
|
- script:
|
|
name: workaround ipv6 localhost
|
|
code: ruby -e "hosts = File.read('/etc/hosts').sub(/^::1\s*localhost.*$/, ''); File.write('/etc/hosts', hosts)"
|
|
- script:
|
|
name: create user # some file permission tests don't succeed with root.
|
|
code: useradd --shell /bin/bash --create-home test && chown -R test:test .
|
|
- script:
|
|
name: configure
|
|
code: /usr/bin/sudo -H -u test -- bash -c 'autoconf && ./configure --disable-install-doc --prefix=/tmp/ruby-prefix'
|
|
- script:
|
|
name: make all install
|
|
code: /usr/bin/sudo -H -u test -- make -j$(nproc) all install
|
|
|
|
# --jit
|
|
- script:
|
|
name: make test (JIT)
|
|
code: /usr/bin/sudo -H -u test -- make test RUN_OPTS="--disable-gems --jit --jit-warnings"
|
|
- script:
|
|
name: make test-spec (JIT)
|
|
code: /usr/bin/sudo -H -u test -- make test-spec RUN_OPTS="--disable-gems --jit --jit-warnings"
|
|
- script:
|
|
name: make test-all (JIT)
|
|
code: /usr/bin/sudo -H -u test -- make test-all RUN_OPTS="--disable-gems --jit --jit-warnings" TESTOPTS="-v --color=never --job-status=normal --longest 10 --subprocess-timeout-scale=3.0 --excludes=test/excludes/_wercker/jit"
|
|
|
|
# --jit-wait (test, test-spec)
|
|
- script:
|
|
name: make test (JIT wait)
|
|
code: /usr/bin/sudo -H -u test -- make test RUN_OPTS="--disable-gems --jit-wait --jit-warnings"
|
|
- script:
|
|
name: make test-spec (JIT wait)
|
|
code: /usr/bin/sudo -H -u test -- make test-spec RUN_OPTS="--disable-gems --jit-wait --jit-warnings"
|
|
|
|
after-steps:
|
|
- wantedly/pretty-slack-notify:
|
|
webhook_url: $SLACK_WEBHOOK_URL
|
|
username: Wercker mjit-test1
|
|
channel: alerts
|
|
notify_on: "failed"
|
|
branches: ^trunk$
|
|
|
|
# --jit-wait (test-all)
|
|
mjit-test2:
|
|
steps:
|
|
- install-packages:
|
|
packages: bison sudo
|
|
- script:
|
|
name: workaround ipv6 localhost
|
|
code: ruby -e "hosts = File.read('/etc/hosts').sub(/^::1\s*localhost.*$/, ''); File.write('/etc/hosts', hosts)"
|
|
- script:
|
|
name: create user # some file permission tests don't succeed with root.
|
|
code: useradd --shell /bin/bash --create-home test && chown -R test:test .
|
|
- script:
|
|
name: configure
|
|
code: /usr/bin/sudo -H -u test -- bash -c 'autoconf && ./configure --disable-install-doc --prefix=/tmp/ruby-prefix'
|
|
- script:
|
|
name: make all install
|
|
code: /usr/bin/sudo -H -u test -- make -j$(nproc) all install
|
|
|
|
# --jit-wait (test-all)
|
|
- script:
|
|
name: make test-all (JIT wait)
|
|
code: /usr/bin/sudo -H -u test -- make test-all RUN_OPTS="--disable-gems --jit-wait --jit-warnings" TESTOPTS="--test-order=random --color=never --job-status=normal --subprocess-timeout-scale=3.0 --excludes=test/excludes/_wercker/jit-wait"
|
|
|
|
after-steps:
|
|
- wantedly/pretty-slack-notify:
|
|
webhook_url: $SLACK_WEBHOOK_URL
|
|
username: Wercker mjit-test2
|
|
channel: alerts
|
|
notify_on: "failed"
|
|
branches: ^trunk$
|