Commit bf4da137e71360267cf41c3cf268a210580ef508
1 parent
b8154153
Exists in
master
and in
27 other branches
gitlab-ci script
Showing
1 changed file
with
56 additions
and
0 deletions
Show diff stats
@@ -0,0 +1,56 @@ | @@ -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) |