##// END OF EJS Templates
add MariaDB 10.0 environment to travis (#17460, #19344)...
Toshi MARUYAMA -
r13695:fadbadd95bc4
parent child
Show More
@@ -1,44 +1,61
1 # Redmine runs tests on own continuous integration server.
1 # Redmine runs tests on own continuous integration server.
2 # http://www.redmine.org/projects/redmine/wiki/Continuous_integration
2 # http://www.redmine.org/projects/redmine/wiki/Continuous_integration
3 # You can also run tests on your environment.
3 # You can also run tests on your environment.
4 language: ruby
4 language: ruby
5 rvm:
5 rvm:
6 - 1.9.3
6 - 1.9.3
7 - 2.0
7 - 2.0
8 - 2.1
8 - 2.1
9 - 2.2
9 - 2.2
10 - jruby
10 - jruby
11 env:
11 env:
12 - "TEST_SUITE=units DATABASE_ADAPTER=postgresql"
12 - "TEST_SUITE=units DATABASE_ADAPTER=postgresql"
13 - "TEST_SUITE=functionals DATABASE_ADAPTER=postgresql"
13 - "TEST_SUITE=functionals DATABASE_ADAPTER=postgresql"
14 - "TEST_SUITE=integration DATABASE_ADAPTER=postgresql"
14 - "TEST_SUITE=integration DATABASE_ADAPTER=postgresql"
15 - "TEST_SUITE=ui DATABASE_ADAPTER=postgresql"
15 - "TEST_SUITE=ui DATABASE_ADAPTER=postgresql"
16 - "TEST_SUITE=units DATABASE_ADAPTER=mysql"
16 - "TEST_SUITE=units DATABASE_ADAPTER=mysql"
17 - "TEST_SUITE=functionals DATABASE_ADAPTER=mysql"
17 - "TEST_SUITE=functionals DATABASE_ADAPTER=mysql"
18 - "TEST_SUITE=integration DATABASE_ADAPTER=mysql"
18 - "TEST_SUITE=integration DATABASE_ADAPTER=mysql"
19 - "TEST_SUITE=ui DATABASE_ADAPTER=mysql"
19 - "TEST_SUITE=ui DATABASE_ADAPTER=mysql"
20 - "TEST_SUITE=units DATABASE_ADAPTER=mariadb-10.0"
21 - "TEST_SUITE=functionals DATABASE_ADAPTER=mariadb-10.0"
22 - "TEST_SUITE=integration DATABASE_ADAPTER=mariadb-10.0"
23 - "TEST_SUITE=ui DATABASE_ADAPTER=mariadb-10.0"
20 - "TEST_SUITE=units DATABASE_ADAPTER=sqlite3"
24 - "TEST_SUITE=units DATABASE_ADAPTER=sqlite3"
21 - "TEST_SUITE=functionals DATABASE_ADAPTER=sqlite3"
25 - "TEST_SUITE=functionals DATABASE_ADAPTER=sqlite3"
22 - "TEST_SUITE=integration DATABASE_ADAPTER=sqlite3"
26 - "TEST_SUITE=integration DATABASE_ADAPTER=sqlite3"
23 - "TEST_SUITE=ui DATABASE_ADAPTER=sqlite3"
27 - "TEST_SUITE=ui DATABASE_ADAPTER=sqlite3"
24 matrix:
28 matrix:
25 allow_failures:
29 allow_failures:
26 # SCM tests fail randomly due to IO.popen().
30 # SCM tests fail randomly due to IO.popen().
27 # http://www.redmine.org/issues/19091
31 # http://www.redmine.org/issues/19091
28 # https://github.com/jruby/jruby/issues/779
32 # https://github.com/jruby/jruby/issues/779
29 - rvm: jruby
33 - rvm: jruby
34 # http://www.redmine.org/issues/17460
35 # http://www.redmine.org/issues/19344
36 - env: "TEST_SUITE=units DATABASE_ADAPTER=mariadb-10.0"
30 before_install:
37 before_install:
31 - "sudo apt-get update -qq"
38 - "sudo apt-get update -qq"
32 - "sudo apt-get --no-install-recommends install bzr cvs git mercurial subversion"
39 - "sudo apt-get --no-install-recommends install bzr cvs git mercurial subversion"
40 - if [[ $DATABASE_ADAPTER =~ mariadb ]] ;
41 then
42 sudo service mysql stop ;
43 sudo apt-get install python-software-properties ;
44 sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db ;
45 sudo add-apt-repository 'deb http://ftp.osuosl.org/pub/mariadb/repo/10.0/ubuntu precise main' ;
46 sudo apt-get update ;
47 sudo DEBIAN_FRONTEND=noninteractive apt-get -q --yes --force-yes -f --option DPkg::Options::=--force-confnew install mariadb-server ;
48 sudo apt-get install libmariadbd-dev ;
49 fi
33 script:
50 script:
34 - "SCMS=bazaar,cvs,subversion,git,mercurial,filesystem"
51 - "SCMS=bazaar,cvs,subversion,git,mercurial,filesystem"
35 - "export SCMS"
52 - "export SCMS"
36 - "git --version"
53 - "git --version"
37 - "bundle install"
54 - "bundle install"
38 - "RUN_ON_NOT_OFFICIAL='' RUBY_VER=1.9 BRANCH=trunk bundle exec rake config/database.yml"
55 - "RUN_ON_NOT_OFFICIAL='' RUBY_VER=1.9 BRANCH=trunk bundle exec rake config/database.yml"
39 - "bundle install"
56 - "bundle install"
40 - "bundle exec rake ci:setup"
57 - "bundle exec rake ci:setup"
41 - phantomjs --webdriver 4444 &
58 - phantomjs --webdriver 4444 &
42 - JRUBY_OPTS=-J-Xmx1024m bundle exec rake test:${TEST_SUITE}
59 - JRUBY_OPTS=-J-Xmx1024m bundle exec rake test:${TEST_SUITE}
43 notifications:
60 notifications:
44 email: false
61 email: false
@@ -1,97 +1,97
1 desc "Run the Continuous Integration tests for Redmine"
1 desc "Run the Continuous 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 "Display info about the build environment"
12 desc "Display info about the build environment"
13 task :about do
13 task :about do
14 puts "Ruby version: #{RUBY_VERSION}-p#{RUBY_PATCHLEVEL} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"
14 puts "Ruby version: #{RUBY_VERSION}-p#{RUBY_PATCHLEVEL} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"
15 end
15 end
16
16
17 desc "Setup Redmine for a new build"
17 desc "Setup Redmine for a new build"
18 task :setup do
18 task :setup do
19 Rake::Task["tmp:clear"].invoke
19 Rake::Task["tmp:clear"].invoke
20 Rake::Task["log:clear"].invoke
20 Rake::Task["log:clear"].invoke
21 Rake::Task["db:create:all"].invoke
21 Rake::Task["db:create:all"].invoke
22 Rake::Task["db:migrate"].invoke
22 Rake::Task["db:migrate"].invoke
23 Rake::Task["db:schema:dump"].invoke
23 Rake::Task["db:schema:dump"].invoke
24 if scms = ENV['SCMS']
24 if scms = ENV['SCMS']
25 scms.split(',').each do |scm|
25 scms.split(',').each do |scm|
26 Rake::Task["test:scm:setup:#{scm}"].invoke
26 Rake::Task["test:scm:setup:#{scm}"].invoke
27 end
27 end
28 else
28 else
29 Rake::Task["test:scm:setup:all"].invoke
29 Rake::Task["test:scm:setup:all"].invoke
30 end
30 end
31 Rake::Task["test:scm:update"].invoke
31 Rake::Task["test:scm:update"].invoke
32 end
32 end
33
33
34 desc "Build Redmine"
34 desc "Build Redmine"
35 task :build do
35 task :build do
36 if test_suite = ENV['TEST_SUITE']
36 if test_suite = ENV['TEST_SUITE']
37 Rake::Task["test:#{test_suite}"].invoke
37 Rake::Task["test:#{test_suite}"].invoke
38 else
38 else
39 Rake::Task["test"].invoke
39 Rake::Task["test"].invoke
40 end
40 end
41 # Rake::Task["test:ui"].invoke
41 # Rake::Task["test:ui"].invoke
42 end
42 end
43
43
44 desc "Finish the build"
44 desc "Finish the build"
45 task :teardown do
45 task :teardown do
46 end
46 end
47 end
47 end
48
48
49 desc "Creates database.yml for the CI server"
49 desc "Creates database.yml for the CI server"
50 file 'config/database.yml' do
50 file 'config/database.yml' do
51 require 'yaml'
51 require 'yaml'
52 database = ENV['DATABASE_ADAPTER']
52 database = ENV['DATABASE_ADAPTER']
53 ruby = ENV['RUBY_VER'].gsub('.', '').gsub('-', '')
53 ruby = ENV['RUBY_VER'].gsub('.', '').gsub('-', '')
54 branch = ENV['BRANCH'].gsub('.', '').gsub('-', '')
54 branch = ENV['BRANCH'].gsub('.', '').gsub('-', '')
55 dev_db_name = "ci_#{branch}_#{ruby}_dev"
55 dev_db_name = "ci_#{branch}_#{ruby}_dev"
56 test_db_name = "ci_#{branch}_#{ruby}_test"
56 test_db_name = "ci_#{branch}_#{ruby}_test"
57
57
58 case database
58 case database
59 when 'mysql'
59 when /(mysql|mariadb)/
60 dev_conf = {'adapter' => 'mysql2',
60 dev_conf = {'adapter' => 'mysql2',
61 'database' => dev_db_name, 'host' => 'localhost',
61 'database' => dev_db_name, 'host' => 'localhost',
62 'encoding' => 'utf8'}
62 'encoding' => 'utf8'}
63 if ENV['RUN_ON_NOT_OFFICIAL']
63 if ENV['RUN_ON_NOT_OFFICIAL']
64 dev_conf['username'] = 'root'
64 dev_conf['username'] = 'root'
65 else
65 else
66 dev_conf['username'] = 'jenkins'
66 dev_conf['username'] = 'jenkins'
67 dev_conf['password'] = 'jenkins'
67 dev_conf['password'] = 'jenkins'
68 end
68 end
69 test_conf = dev_conf.merge('database' => test_db_name)
69 test_conf = dev_conf.merge('database' => test_db_name)
70 when 'postgresql'
70 when 'postgresql'
71 dev_conf = {'adapter' => 'postgresql', 'database' => dev_db_name,
71 dev_conf = {'adapter' => 'postgresql', 'database' => dev_db_name,
72 'host' => 'localhost'}
72 'host' => 'localhost'}
73 if ENV['RUN_ON_NOT_OFFICIAL']
73 if ENV['RUN_ON_NOT_OFFICIAL']
74 dev_conf['username'] = 'postgres'
74 dev_conf['username'] = 'postgres'
75 else
75 else
76 dev_conf['username'] = 'jenkins'
76 dev_conf['username'] = 'jenkins'
77 dev_conf['password'] = 'jenkins'
77 dev_conf['password'] = 'jenkins'
78 end
78 end
79 test_conf = dev_conf.merge('database' => test_db_name)
79 test_conf = dev_conf.merge('database' => test_db_name)
80 when /sqlite3/
80 when /sqlite3/
81 dev_conf = {'adapter' => (Object.const_defined?(:JRUBY_VERSION) ?
81 dev_conf = {'adapter' => (Object.const_defined?(:JRUBY_VERSION) ?
82 'jdbcsqlite3' : 'sqlite3'),
82 'jdbcsqlite3' : 'sqlite3'),
83 'database' => "db/#{dev_db_name}.sqlite3"}
83 'database' => "db/#{dev_db_name}.sqlite3"}
84 test_conf = dev_conf.merge('database' => "db/#{test_db_name}.sqlite3")
84 test_conf = dev_conf.merge('database' => "db/#{test_db_name}.sqlite3")
85 when 'sqlserver'
85 when 'sqlserver'
86 dev_conf = {'adapter' => 'sqlserver', 'database' => dev_db_name,
86 dev_conf = {'adapter' => 'sqlserver', 'database' => dev_db_name,
87 'host' => 'mssqlserver', 'port' => 1433,
87 'host' => 'mssqlserver', 'port' => 1433,
88 'username' => 'jenkins', 'password' => 'jenkins'}
88 'username' => 'jenkins', 'password' => 'jenkins'}
89 test_conf = dev_conf.merge('database' => test_db_name)
89 test_conf = dev_conf.merge('database' => test_db_name)
90 else
90 else
91 abort "Unknown database"
91 abort "Unknown database"
92 end
92 end
93
93
94 File.open('config/database.yml', 'w') do |f|
94 File.open('config/database.yml', 'w') do |f|
95 f.write YAML.dump({'development' => dev_conf, 'test' => test_conf})
95 f.write YAML.dump({'development' => dev_conf, 'test' => test_conf})
96 end
96 end
97 end
97 end
General Comments 0
You need to be logged in to leave comments. Login now