--- /dev/null
+# Redmine runs tests on own continuous integration server.
+# http://www.redmine.org/projects/redmine/wiki/Continuous_integration
+# You can also run tests on your environment.
+language: ruby
+rvm:
+ - 1.8.7
+ - 1.9.3
+ - 2.0
+ - jruby
+matrix:
+ allow_failures:
+ # SCM tests fail randomly due to IO.popen().
+ # https://github.com/jruby/jruby/issues/779
+ - rvm: jruby
+env:
+ - "TEST_SUITE=units DATABASE_ADAPTER=postgresql"
+ - "TEST_SUITE=functionals DATABASE_ADAPTER=postgresql"
+ - "TEST_SUITE=integration DATABASE_ADAPTER=postgresql"
+ - "TEST_SUITE=units DATABASE_ADAPTER=mysql"
+ - "TEST_SUITE=functionals DATABASE_ADAPTER=mysql"
+ - "TEST_SUITE=integration DATABASE_ADAPTER=mysql"
+ - "TEST_SUITE=units DATABASE_ADAPTER=sqlite3"
+ - "TEST_SUITE=functionals DATABASE_ADAPTER=sqlite3"
+ - "TEST_SUITE=integration DATABASE_ADAPTER=sqlite3"
+before_install:
+ - "sudo apt-get update -qq"
+ - "sudo apt-get --no-install-recommends install bzr cvs git mercurial subversion"
+script:
+ - "SCMS=bazaar,cvs,subversion,git,mercurial,filesystem"
+ - "export SCMS"
+ - "git --version"
+ - "bundle install"
+ - "RUN_ON_NOT_OFFICIAL='' RUBY_VER=1.9 BRANCH=trunk bundle exec rake config/database.yml"
+ - "bundle install"
+ - "JRUBY_OPTS=-J-Xmx1024m bundle exec rake ci"
+notifications:
+ email: false
-desc "Run the Continous Integration tests for Redmine"
+desc "Run the Continuous Integration tests for Redmine"
task :ci do
# RAILS_ENV and ENV[] can diverge so force them both to test
ENV['RAILS_ENV'] = 'test'
Rake::Task["db:create:all"].invoke
Rake::Task["db:migrate"].invoke
Rake::Task["db:schema:dump"].invoke
- Rake::Task["test:scm:setup:all"].invoke
+ if scms = ENV['SCMS']
+ scms.split(',').each do |scm|
+ Rake::Task["test:scm:setup:#{scm}"].invoke
+ end
+ else
+ Rake::Task["test:scm:setup:all"].invoke
+ end
Rake::Task["test:scm:update"].invoke
end
desc "Build Redmine"
task :build do
- Rake::Task["test"].invoke
+ if test_suite = ENV['TEST_SUITE']
+ Rake::Task["test:#{test_suite}"].invoke
+ else
+ Rake::Task["test"].invoke
+ end
# Rake::Task["test:ui"].invoke if RUBY_VERSION >= '1.9.3'
end
case database
when 'mysql'
dev_conf = {'adapter' => (RUBY_VERSION >= '1.9' ? 'mysql2' : 'mysql'),
- 'database' => dev_db_name, 'host' => 'localhost',
- 'username' => 'jenkins', 'password' => 'jenkins',
- 'encoding' => 'utf8'}
+ 'database' => dev_db_name, 'host' => 'localhost',
+ 'encoding' => 'utf8'}
+ if ENV['RUN_ON_NOT_OFFICIAL']
+ dev_conf['username'] = 'root'
+ else
+ dev_conf['username'] = 'jenkins'
+ dev_conf['password'] = 'jenkins'
+ end
test_conf = dev_conf.merge('database' => test_db_name)
when 'postgresql'
dev_conf = {'adapter' => 'postgresql', 'database' => dev_db_name,
- 'host' => 'localhost',
- 'username' => 'jenkins', 'password' => 'jenkins'}
+ 'host' => 'localhost'}
+ if ENV['RUN_ON_NOT_OFFICIAL']
+ dev_conf['username'] = 'postgres'
+ else
+ dev_conf['username'] = 'jenkins'
+ dev_conf['password'] = 'jenkins'
+ end
test_conf = dev_conf.merge('database' => test_db_name)
when /sqlite3/
dev_conf = {'adapter' => (Object.const_defined?(:JRUBY_VERSION) ?