#!/bin/bash # # Build and run for automatic tests # # fail later set -o pipefail # default locations export LANGUAGE=en_US.UTF-8 export LANG=en_US.UTF-8 export LC_ALL=en_US.UTF-8 export RAILS_ENV=test # cd to Rails root directory cd "$(dirname "$0")"; cd .. cp config/application-example.yml config/application.yml cp config/secrets-example.yml config/secrets.yml cp config/database-robot.yml config/database.yml # under jenkins use rbenv-plugin wrapper bundle install RAILS_ENV=test bundle exec rake db:all:drop RAILS_ENV=test bundle exec rake db:all:setup RAILS_ENV=test bundle exec rake assets:precompile echo "GIT_LAST_COMMITS" git log --pretty='%s (%cn, %cr)' --abbrev-commit --graph --decorate -n 20 --no-color echo "END_OF_GIT_LAST_COMMITS" echo "RUBOCOP_RESULTS" bundle exec rubocop -D RCODE=$? echo "END_OF_RUBOCOP_RESULTS" echo "TEST_RESULTS" # basic test # ROBOT=true bundle exec rake # all tests with EPP ROBOT=true bundle exec rake test TCODE=$? echo "END_OF_TEST_RESULTS" echo "SECURITY_RESULTS" bundle exec bundle-audit update bundle exec bundle-audit BCODE=$? BCODE=0 # tmp bundle exec brakeman -q echo "END_OF_SECURITY_RESULTS" # update code review bundle exec rubycritic app lib if [ $RCODE == 0 ] && [ $TCODE == 0 ] &&[ $BCODE == 0 ]; then exit 0 else echo "ROBOTEXITWITHFAILURE" exit 1 fi