Commit bf4da137e71360267cf41c3cf268a210580ef508

Authored by Braulio Bhavamitra
1 parent b8154153

gitlab-ci script

Showing 1 changed file with 56 additions and 0 deletions   Show diff stats
script/gitlab-ci 0 → 100755
... ... @@ -0,0 +1,56 @@
  1 +#!/usr/bin/env ruby
  2 +
  3 +# These just forward the signals to the whole process group and
  4 +# then immediately exit.
  5 +pgid = Process.getpgid Process.pid
  6 +Signal.trap(:TERM) { Process.kill(:TERM, -pgid); exit }
  7 +Signal.trap(:INT) { Process.kill(:INT, -pgid); exit }
  8 +
  9 +def run command, options = {}
  10 + command = "#{command} 2>&1 > /dev/null" if options[:output] == false
  11 + #command = "time #{command}" unless options[:runtime] == false
  12 + puts "== #{command}"
  13 + system command
  14 +end
  15 +
  16 +@id = (0...10).map{ ('a'..'z').to_a[rand(26)] }.join
  17 +@db = "gitlab-ci-#{@id}"
  18 +
  19 +def config
  20 + require 'yaml'
  21 + db_config = {
  22 + 'adapter' => 'postgresql', 'encoding' => 'unicode',
  23 + 'database' => @db, 'username' => ENV['USER'],
  24 + }
  25 + File.write 'config/database.yml', YAML.dump('test' => db_config, 'development' => db_config)
  26 +end
  27 +
  28 +def prepare
  29 + run("createdb #{@db}") and
  30 + run('mkdir -p tmp/pids log') and
  31 + run('bundle check || bundle install') and
  32 + run('rake db:schema:load', output: false) and
  33 + run('script/noosfero-plugins disableall') and
  34 + run('rake db:migrate')
  35 +end
  36 +
  37 +def test
  38 + %w[
  39 + test:units
  40 + test:functionals
  41 + test:integration
  42 + cucumber
  43 + test:noosfero_plugins
  44 + ].each do |task|
  45 + run "rake #{task}"
  46 + end
  47 +end
  48 +
  49 +def cleanup
  50 + run "dropdb #{@db}"
  51 +end
  52 +
  53 +ret = config and prepare and test
  54 +cleanup
  55 +
  56 +exit (if ret == true then 0 else 1 end)
... ...