#!/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 admin interface use rbenv-plugin wrapper # rbenv does not have bundler by default if echo gem list --local bundler | grep -q "bundler" then echo 'bundler ok: already installed' else echo 'Installing bundler...' gem install bundler fi bundle install RAILS_ENV=test bundle exec rake db:all:drop RAILS_ENV=test bundle exec rake db:all:setup 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 tests without EPP # 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" if [ $RCODE == 0 ] && [ $TCODE == 0 ] &&[ $BCODE == 0 ]; then exit 0 else echo "ROBOTEXITWITHFAILURE" exit 1 fi