1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
#!/bin/bash
set -e -x
# idea taken from: http://blog.headius.com/2010/03/jruby-startup-time-tips.html
export JRUBY_OPTS='-X-C' # disable JIT since these processes are so short lived
# force jRuby to use client mode JVM or a compilation mode thats as close as possible,
# idea taken from https://github.com/jruby/jruby/wiki/Improving-startup-time
export JAVA_OPTS='-client -XX:+TieredCompilation -XX:TieredStopAtLevel=1'
echo "Running rspec specs"
bin/rspec spec --format progress --profile
echo "Running cucumber specs"
if [ -z ${BRANCH+" is set"} ]; then
echo "BRANCH must be set for this script."
exit 1
else
echo "Using $BRANCH"
fi
if ruby -e "exit(defined?(RUBY_PLATFORM) && RUBY_PLATFORM == 'java')"; then
# This is JRUBY which requires this one weird path trick...
PATH="${PWD}/bin:$PATH" \
bundle exec cucumber --strict
elif ruby -e "exit(RUBY_VERSION.to_f >= 3.4)"; then
# This is a monkey patch to fix an issue with cucumber using outdated hash syntax, remove when cucumber is updated or ruby 3.4 released
sed -i '$i\class Hash; alias :__initialize :initialize; def initialize(*args, **_kw, &block) = __initialize(*args, &block); end' bin/cucumber
bin/cucumber --strict
else
bundle exec cucumber --strict
fi;
|