#!/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/secrets-example.yml config/secrets.yml # create manually config/database.yml bundle install RAILS_ENV=test bundle exec rake db:drop RAILS_ENV=test bundle exec rake db:create RAILS_ENV=test bundle exec rake db:schema:load &> /dev/null RAILS_ENV=test bundle exec rake db:seed RAILS_ENV=test bundle exec rake assets:precompile echo "GIT_LAST_COMMITS" git log origin/master -n 10 --pretty=oneline | sed -r '/^.{40} Merge branch/d' | sed -r 's/^.{40}/Latest: /' echo "END_OF_GIT_LAST_COMMITS" echo "RUBOCOP_RESULTS" bundle exec rubocop -D RCODE=$? echo "END_OF_RUBOCOP_RESULTS" echo "TEST_RESULTS" 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 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