Commit 652e8ffa4cffd00a34a5eb262ad725b3dc1064eb
1 parent
6787d6ea
Exists in
master
and in
3 other branches
CI: Use new gitlab-ci.yml and add .travis.yml
Showing
6 changed files
with
70 additions
and
56 deletions
Show diff stats
@@ -0,0 +1,24 @@ | @@ -0,0 +1,24 @@ | ||
1 | +before_install: | ||
2 | + - mkdir -p tmp/pids log | ||
3 | + - script/noosfero-plugins disableall | ||
4 | + - bundle check || bundle install | ||
5 | +# database | ||
6 | + - cp config/database.yml.gitlab-ci config/database.yml | ||
7 | + - dropdb gitlab_ci_test | ||
8 | + - createdb gitlab_ci_test | ||
9 | + - bundle exec rake db:schema:load | ||
10 | + - bundle exec rake db:migrate | ||
11 | + | ||
12 | +units: | ||
13 | + script: 'bundle exec rake test:units' | ||
14 | +functionals: | ||
15 | + script: 'bundle exec rake test:functionals' | ||
16 | +integration: | ||
17 | + script: 'bundle exec rake test:integration' | ||
18 | +cucumber: | ||
19 | + script: 'bundle exec rake cucumber' | ||
20 | +selenium: | ||
21 | + script: 'bundle exec rake selenium' | ||
22 | +plugins: | ||
23 | + script: 'bundle exec rake test:noosfero_plugins' | ||
24 | + |
@@ -0,0 +1,35 @@ | @@ -0,0 +1,35 @@ | ||
1 | +language: ruby | ||
2 | +rvm: | ||
3 | +# for 2.2 support we need to upgrade the pg gem | ||
4 | + - 2.1.6 | ||
5 | + | ||
6 | +before_install: | ||
7 | +# dependencies | ||
8 | + - sudo apt-get update | ||
9 | + - sudo apt-get -y install po4a iso-codes tango-icon-theme pidgin-data openjdk-6-jre curl wget | ||
10 | + - sudo apt-get -y install libmagickwand-dev libpq-dev libreadline-dev libsqlite3-dev libxslt1-dev | ||
11 | +# selenium support | ||
12 | + - export DISPLAY=:99.0 | ||
13 | + - sh -e /etc/init.d/xvfb start | ||
14 | + | ||
15 | +before_script: | ||
16 | + - mkdir -p tmp/pids log | ||
17 | + - script/noosfero-plugins disableall | ||
18 | + - bundle check || bundle install | ||
19 | +# database | ||
20 | + - cp config/database.yml.travis config/database.yml | ||
21 | + - psql -c 'create database myapp_test;' -U postgres | ||
22 | + - bundle exec rake db:schema:load | ||
23 | + - bundle exec rake db:migrate | ||
24 | + | ||
25 | +env: | ||
26 | + - TASK=test:units | ||
27 | + - TASK=test:functionals | ||
28 | + - TASK=test:integration | ||
29 | + - TASK=cucumber | ||
30 | + - TASK=selenium | ||
31 | + - TASK=test:noosfero_plugins | ||
32 | + | ||
33 | +script: | ||
34 | + - bundle exec rake $TASK | ||
35 | + |
Gemfile
@@ -32,6 +32,7 @@ group :test do | @@ -32,6 +32,7 @@ group :test do | ||
32 | gem 'rspec', '~> 2.14.0' | 32 | gem 'rspec', '~> 2.14.0' |
33 | gem 'rspec-rails', '~> 2.14.1' | 33 | gem 'rspec-rails', '~> 2.14.1' |
34 | gem 'mocha', '~> 1.1.0', :require => false | 34 | gem 'mocha', '~> 1.1.0', :require => false |
35 | + gem 'test-unit' if RUBY_VERSION >= '2.2.0' | ||
35 | end | 36 | end |
36 | 37 | ||
37 | group :cucumber do | 38 | group :cucumber do |
script/gitlab-ci
@@ -1,56 +0,0 @@ | @@ -1,56 +0,0 @@ | ||
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) |