mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
4eda7e1d14
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) https://app.wercker.com/ruby/ruby/runs/mjit-test2/5c78f15cc9e725000805b86c?step=5c79031d6c1e2c0008ac41c3 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$
|