# # 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 - script: name: install mjit-debug-on-fail code: | cat <<'EOS' > /usr/local/bin/mjit-debug-on-fail #!/bin/bash if ! $@; then for f in $(find /tmp -type f -name "ruby_mjit*.c"); do echo "[${f}]===" cat "$f" echo "===" echo done exit 1 fi EOS chmod +x /usr/local/bin/mjit-debug-on-fail # --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/local/bin/mjit-debug-on-fail /usr/bin/sudo -H -u test -- make test-all RUN_OPTS="--disable-gems --jit-verbose=1 --jit-save-temps --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$