##// END OF EJS Templates
work around "rake db:create:all" error on JRuby SQLite3...
Toshi MARUYAMA -
r12026:882c4495c08b
parent child
Show More
@@ -1,63 +1,66
1 desc "Run the Continous Integration tests for Redmine"
1 desc "Run the Continous Integration tests for Redmine"
2 task :ci do
2 task :ci do
3 # RAILS_ENV and ENV[] can diverge so force them both to test
3 # RAILS_ENV and ENV[] can diverge so force them both to test
4 ENV['RAILS_ENV'] = 'test'
4 ENV['RAILS_ENV'] = 'test'
5 RAILS_ENV = 'test'
5 RAILS_ENV = 'test'
6 Rake::Task["ci:setup"].invoke
6 Rake::Task["ci:setup"].invoke
7 Rake::Task["ci:build"].invoke
7 Rake::Task["ci:build"].invoke
8 Rake::Task["ci:teardown"].invoke
8 Rake::Task["ci:teardown"].invoke
9 end
9 end
10
10
11 namespace :ci do
11 namespace :ci do
12 desc "Setup Redmine for a new build"
12 desc "Setup Redmine for a new build"
13 task :setup do
13 task :setup do
14 Rake::Task["tmp:clear"].invoke
14 Rake::Task["tmp:clear"].invoke
15 Rake::Task["log:clear"].invoke
15 Rake::Task["log:clear"].invoke
16 Rake::Task["db:create:all"].invoke
16 database = ENV['DATABASE_ADAPTER']
17 unless Object.const_defined?(:JRUBY_VERSION) && database =~ /sqlite3/
18 Rake::Task["db:create:all"].invoke
19 end
17 Rake::Task["db:migrate"].invoke
20 Rake::Task["db:migrate"].invoke
18 Rake::Task["db:schema:dump"].invoke
21 Rake::Task["db:schema:dump"].invoke
19 Rake::Task["test:scm:setup:all"].invoke
22 Rake::Task["test:scm:setup:all"].invoke
20 Rake::Task["test:scm:update"].invoke
23 Rake::Task["test:scm:update"].invoke
21 end
24 end
22
25
23 desc "Build Redmine"
26 desc "Build Redmine"
24 task :build do
27 task :build do
25 Rake::Task["test"].invoke
28 Rake::Task["test"].invoke
26 # Rake::Task["test:ui"].invoke if RUBY_VERSION >= '1.9.3'
29 # Rake::Task["test:ui"].invoke if RUBY_VERSION >= '1.9.3'
27 end
30 end
28
31
29 desc "Finish the build"
32 desc "Finish the build"
30 task :teardown do
33 task :teardown do
31 end
34 end
32 end
35 end
33
36
34 desc "Creates database.yml for the CI server"
37 desc "Creates database.yml for the CI server"
35 file 'config/database.yml' do
38 file 'config/database.yml' do
36 require 'yaml'
39 require 'yaml'
37 database = ENV['DATABASE_ADAPTER']
40 database = ENV['DATABASE_ADAPTER']
38 ruby = ENV['RUBY_VER'].gsub('.', '').gsub('-', '')
41 ruby = ENV['RUBY_VER'].gsub('.', '').gsub('-', '')
39 branch = ENV['BRANCH'].gsub('.', '').gsub('-', '')
42 branch = ENV['BRANCH'].gsub('.', '').gsub('-', '')
40 dev_db_name = "ci_#{branch}_#{ruby}_dev"
43 dev_db_name = "ci_#{branch}_#{ruby}_dev"
41 test_db_name = "ci_#{branch}_#{ruby}_test"
44 test_db_name = "ci_#{branch}_#{ruby}_test"
42
45
43 case database
46 case database
44 when 'mysql'
47 when 'mysql'
45 dev_conf = {'adapter' => (RUBY_VERSION >= '1.9' ? 'mysql2' : 'mysql'), 'database' => dev_db_name, 'host' => 'localhost', 'username' => 'jenkins', 'password' => 'jenkins', 'encoding' => 'utf8'}
48 dev_conf = {'adapter' => (RUBY_VERSION >= '1.9' ? 'mysql2' : 'mysql'), 'database' => dev_db_name, 'host' => 'localhost', 'username' => 'jenkins', 'password' => 'jenkins', 'encoding' => 'utf8'}
46 test_conf = dev_conf.merge('database' => test_db_name)
49 test_conf = dev_conf.merge('database' => test_db_name)
47 when 'postgresql'
50 when 'postgresql'
48 dev_conf = {'adapter' => 'postgresql', 'database' => dev_db_name, 'host' => 'localhost', 'username' => 'jenkins', 'password' => 'jenkins'}
51 dev_conf = {'adapter' => 'postgresql', 'database' => dev_db_name, 'host' => 'localhost', 'username' => 'jenkins', 'password' => 'jenkins'}
49 test_conf = dev_conf.merge('database' => test_db_name)
52 test_conf = dev_conf.merge('database' => test_db_name)
50 when 'sqlite3'
53 when 'sqlite3'
51 dev_conf = {'adapter' => 'sqlite3', 'database' => "db/#{dev_db_name}.sqlite3"}
54 dev_conf = {'adapter' => 'sqlite3', 'database' => "db/#{dev_db_name}.sqlite3"}
52 test_conf = dev_conf.merge('database' => "db/#{test_db_name}.sqlite3")
55 test_conf = dev_conf.merge('database' => "db/#{test_db_name}.sqlite3")
53 when 'sqlserver'
56 when 'sqlserver'
54 dev_conf = {'adapter' => 'sqlserver', 'database' => dev_db_name, 'host' => 'mssqlserver', 'port' => 1433, 'username' => 'jenkins', 'password' => 'jenkins'}
57 dev_conf = {'adapter' => 'sqlserver', 'database' => dev_db_name, 'host' => 'mssqlserver', 'port' => 1433, 'username' => 'jenkins', 'password' => 'jenkins'}
55 test_conf = dev_conf.merge('database' => test_db_name)
58 test_conf = dev_conf.merge('database' => test_db_name)
56 else
59 else
57 abort "Unknown database"
60 abort "Unknown database"
58 end
61 end
59
62
60 File.open('config/database.yml', 'w') do |f|
63 File.open('config/database.yml', 'w') do |f|
61 f.write YAML.dump({'development' => dev_conf, 'test' => test_conf})
64 f.write YAML.dump({'development' => dev_conf, 'test' => test_conf})
62 end
65 end
63 end
66 end
General Comments 0
You need to be logged in to leave comments. Login now