Commit b902a9b8 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Merge branch 'split-tests' into 'master'

Split rspec and spinach tests in parallel

For https://dev.gitlab.org/gitlab/gitlabhq/issues/2386

See merge request !874
parents 541f7675 b8f12d19
......@@ -9,35 +9,57 @@ before_script:
- touch log/test.log
- bundle install --without postgres production --jobs $(nproc) "${FLAGS[@]}"
- bundle exec rake db:create RAILS_ENV=test
Rspec:
spec:feature:
script:
- RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:feature
tags:
- ruby
- mysql
spec:api:
script:
- RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:api
tags:
- ruby
- mysql
spec:other:
script:
- RAILS_ENV=test SIMPLECOV=true bundle exec rake spec:other
tags:
- ruby
- mysql
spinach:project:
script:
- RAILS_ENV=test SIMPLECOV=true bundle exec rake spec
- RAILS_ENV=test SIMPLECOV=true bundle exec rake spinach:project
tags:
- ruby
- mysql
Spinach:
spinach:other:
script:
- RAILS_ENV=test SIMPLECOV=true bundle exec rake spinach
- RAILS_ENV=test SIMPLECOV=true bundle exec rake spinach:other
tags:
- ruby
- mysql
Jasmine:
jasmine:ci:
script:
- RAILS_ENV=test SIMPLECOV=true bundle exec rake jasmine:ci
tags:
- ruby
- mysql
Rubocop:
rubocop:
script:
- bundle exec rubocop
tags:
- ruby
- mysql
Brakeman:
brakeman:
script:
- bundle exec rake brakeman
tags:
......
......@@ -45,7 +45,7 @@ Feature: Project Source Browse Files
Then I am redirected to the new file on new branch
And I should see its new content
@javascript @tricky
@javascript
Scenario: I can create file in empty repo
Given I own an empty project
And I visit my empty project page
......
namespace :cache do
desc "GITLAB | Clear redis cache"
desc "GitLab | Clear redis cache"
task :clear => :environment do
# Hack into Rails.cache until https://github.com/redis-store/redis-store/pull/225
# is accepted (I hope) and we can update the redis-store gem.
......
task dev: ["dev:setup"]
namespace :dev do
desc "GITLAB | Setup developer environment (db, fixtures)"
desc "GitLab | Setup developer environment (db, fixtures)"
task :setup => :environment do
ENV['force'] = 'yes'
Rake::Task["gitlab:setup"].invoke
Rake::Task["gitlab:shell:setup"].invoke
end
desc 'GITLAB | Start/restart foreman and watch for changes'
desc 'GitLab | Start/restart foreman and watch for changes'
task :foreman => :environment do
sh 'rerun --dir app,config,lib -- foreman start'
end
......
......@@ -3,7 +3,7 @@ require 'active_record/fixtures'
namespace :gitlab do
namespace :backup do
# Create backup of GitLab system
desc "GITLAB | Create a backup of the GitLab system"
desc "GitLab | Create a backup of the GitLab system"
task create: :environment do
warn_user_is_not_gitlab
configure_cron_mode
......@@ -19,7 +19,7 @@ namespace :gitlab do
end
# Restore backup of GitLab system
desc "GITLAB | Restore a previously created backup"
desc "GitLab | Restore a previously created backup"
task restore: :environment do
warn_user_is_not_gitlab
configure_cron_mode
......
namespace :gitlab do
namespace :import do
desc "GITLAB | Add all users to all projects (admin users are added as masters)"
desc "GitLab | Add all users to all projects (admin users are added as masters)"
task all_users_to_all_projects: :environment do |t, args|
user_ids = User.where(admin: false).pluck(:id)
admin_ids = User.where(admin: true).pluck(:id)
......@@ -13,7 +13,7 @@ namespace :gitlab do
ProjectMember.add_users_into_projects(projects_ids, admin_ids, ProjectMember::MASTER)
end
desc "GITLAB | Add a specific user to all projects (as a developer)"
desc "GitLab | Add a specific user to all projects (as a developer)"
task :user_to_projects, [:email] => :environment do |t, args|
user = User.find_by(email: args.email)
project_ids = Project.pluck(:id)
......@@ -21,7 +21,7 @@ namespace :gitlab do
ProjectMember.add_users_into_projects(project_ids, Array.wrap(user.id), ProjectMember::DEVELOPER)
end
desc "GITLAB | Add all users to all groups (admin users are added as owners)"
desc "GitLab | Add all users to all groups (admin users are added as owners)"
task all_users_to_all_groups: :environment do |t, args|
user_ids = User.where(admin: false).pluck(:id)
admin_ids = User.where(admin: true).pluck(:id)
......@@ -35,7 +35,7 @@ namespace :gitlab do
end
end
desc "GITLAB | Add a specific user to all groups (as a developer)"
desc "GitLab | Add a specific user to all groups (as a developer)"
task :user_to_groups, [:email] => :environment do |t, args|
user = User.find_by_email args.email
groups = Group.all
......
namespace :gitlab do
desc "GITLAB | Check the configuration of GitLab and its environment"
desc "GitLab | Check the configuration of GitLab and its environment"
task check: %w{gitlab:gitlab_shell:check
gitlab:sidekiq:check
gitlab:ldap:check
......@@ -8,7 +8,7 @@ namespace :gitlab do
namespace :app do
desc "GITLAB | Check the configuration of the GitLab Rails app"
desc "GitLab | Check the configuration of the GitLab Rails app"
task check: :environment do
warn_user_is_not_gitlab
start_checking "GitLab"
......@@ -329,7 +329,7 @@ namespace :gitlab do
end
namespace :gitlab_shell do
desc "GITLAB | Check the configuration of GitLab Shell"
desc "GitLab | Check the configuration of GitLab Shell"
task check: :environment do
warn_user_is_not_gitlab
start_checking "GitLab Shell"
......@@ -574,7 +574,7 @@ namespace :gitlab do
namespace :sidekiq do
desc "GITLAB | Check the configuration of Sidekiq"
desc "GitLab | Check the configuration of Sidekiq"
task check: :environment do
warn_user_is_not_gitlab
start_checking "Sidekiq"
......@@ -667,7 +667,7 @@ namespace :gitlab do
end
namespace :repo do
desc "GITLAB | Check the integrity of the repositories managed by GitLab"
desc "GitLab | Check the integrity of the repositories managed by GitLab"
task check: :environment do
namespace_dirs = Dir.glob(
File.join(Gitlab.config.gitlab_shell.repos_path, '*')
......
namespace :gitlab do
namespace :cleanup do
desc "GITLAB | Cleanup | Clean namespaces"
desc "GitLab | Cleanup | Clean namespaces"
task dirs: :environment do
warn_user_is_not_gitlab
remove_flag = ENV['REMOVE']
......@@ -43,7 +43,7 @@ namespace :gitlab do
end
end
desc "GITLAB | Cleanup | Clean repositories"
desc "GitLab | Cleanup | Clean repositories"
task repos: :environment do
warn_user_is_not_gitlab
remove_flag = ENV['REMOVE']
......@@ -85,7 +85,7 @@ namespace :gitlab do
end
end
desc "GITLAB | Cleanup | Block users that have been removed in LDAP"
desc "GitLab | Cleanup | Block users that have been removed in LDAP"
task block_removed_ldap_users: :environment do
warn_user_is_not_gitlab
block_flag = ENV['BLOCK']
......
namespace :gitlab do
namespace :satellites do
desc "GITLAB | Create satellite repos"
desc "GitLab | Create satellite repos"
task create: :environment do
create_satellites
end
......
namespace :gitlab do
desc "GITLAB | Generate sdocs for project"
desc "GitLab | Generate sdocs for project"
task generate_docs: :environment do
system(*%W(bundle exec sdoc -o doc/code app lib))
end
......
......@@ -9,7 +9,7 @@ namespace :gitlab do
# * The project owner will set to the first administator of the system
# * Existing projects will be skipped
#
desc "GITLAB | Import bare repositories from gitlab_shell -> repos_path into GitLab project instance"
desc "GitLab | Import bare repositories from gitlab_shell -> repos_path into GitLab project instance"
task repos: :environment do
git_base_path = Gitlab.config.gitlab_shell.repos_path
......
namespace :gitlab do
namespace :env do
desc "GITLAB | Show information about GitLab and its environment"
desc "GitLab | Show information about GitLab and its environment"
task info: :environment do
# check if there is an RVM environment
......
namespace :gitlab do
desc "GITLAB | Setup production application"
desc "GitLab | Setup production application"
task setup: :environment do
setup_db
end
......
namespace :gitlab do
namespace :shell do
desc "GITLAB | Install or upgrade gitlab-shell"
desc "GitLab | Install or upgrade gitlab-shell"
task :install, [:tag, :repo] => :environment do |t, args|
warn_user_is_not_gitlab
......@@ -75,12 +75,12 @@ namespace :gitlab do
end
end
desc "GITLAB | Setup gitlab-shell"
desc "GitLab | Setup gitlab-shell"
task setup: :environment do
setup
end
desc "GITLAB | Build missing projects"
desc "GitLab | Build missing projects"
task build_missing_projects: :environment do
Project.find_each(batch_size: 1000) do |project|
path_to_repo = project.repository.path_to_repo
......
namespace :gitlab do
desc "GITLAB | Run all tests"
desc "GitLab | Run all tests"
task :test do
cmds = [
%W(rake brakeman),
......
namespace :gitlab do
namespace :web_hook do
desc "GITLAB | Adds a web hook to the projects"
desc "GitLab | Adds a web hook to the projects"
task :add => :environment do
web_hook_url = ENV['URL']
namespace_path = ENV['NAMESPACE']
......@@ -20,7 +20,7 @@ namespace :gitlab do
end
end
desc "GITLAB | Remove a web hook from the projects"
desc "GitLab | Remove a web hook from the projects"
task :rm => :environment do
web_hook_url = ENV['URL']
namespace_path = ENV['NAMESPACE']
......@@ -33,7 +33,7 @@ namespace :gitlab do
puts "#{count} web hooks were removed."
end
desc "GITLAB | List web hooks"
desc "GitLab | List web hooks"
task :list => :environment do
namespace_path = ENV['NAMESPACE']
......
require Rails.root.join('db/migrate/limits_to_mysql')
desc "GITLAB | Add limits to strings in mysql database"
desc "GitLab | Add limits to strings in mysql database"
task add_limits_mysql: :environment do
puts "Adding limits to schema.rb for mysql"
LimitsToMysql.new.up
......
desc "GITLAB | Build internal ids for issues and merge requests"
desc "GitLab | Build internal ids for issues and merge requests"
task migrate_iids: :environment do
puts 'Issues'.yellow
Issue.where(iid: nil).find_each(batch_size: 100) do |issue|
......
desc "GITLAB | Setup gitlab db"
desc "GitLab | Setup gitlab db"
task :setup do
Rake::Task["gitlab:setup"].invoke
end
namespace :sidekiq do
desc "GITLAB | Stop sidekiq"
desc "GitLab | Stop sidekiq"
task :stop do
system *%W(bin/background_jobs stop)
end
desc "GITLAB | Start sidekiq"
desc "GitLab | Start sidekiq"
task :start do
system *%W(bin/background_jobs start)
end
......@@ -14,7 +14,7 @@ namespace :sidekiq do
system *%W(bin/background_jobs restart)
end
desc "GITLAB | Start sidekiq with launchd on Mac OS X"
desc "GitLab | Start sidekiq with launchd on Mac OS X"
task :launchd do
system *%W(bin/background_jobs start_no_deamonize)
end
......
Rake::Task["spec"].clear if Rake::Task.task_defined?('spec')
namespace :spec do
desc 'GITLAB | Run request specs'
desc 'GitLab | Rspec | Run request specs'
task :api do
cmds = [
%W(rake gitlab:setup),
......@@ -10,7 +10,7 @@ namespace :spec do
run_commands(cmds)
end
desc 'GITLAB | Run feature specs'
desc 'GitLab | Rspec | Run feature specs'
task :feature do
cmds = [
%W(rake gitlab:setup),
......@@ -19,7 +19,7 @@ namespace :spec do
run_commands(cmds)
end
desc 'GITLAB | Run other specs'
desc 'GitLab | Rspec | Run other specs'
task :other do
cmds = [
%W(rake gitlab:setup),
......@@ -29,7 +29,7 @@ namespace :spec do
end
end
desc "GITLAB | Run specs"
desc "GitLab | Run specs"
task :spec do
cmds = [
%W(rake gitlab:setup),
......
Rake::Task["spinach"].clear if Rake::Task.task_defined?('spinach')
desc "GITLAB | Run spinach"
task :spinach do
tags = if ENV['SEMAPHORE']
'~@tricky'
else
'~@semaphore'
end
namespace :spinach do
desc "GitLab | Spinach | Run project spinach features"
task :project do
cmds = [
%W(rake gitlab:setup),
%W(spinach --tags #{tags}),
%W(spinach --tags ~@admin,~@dashboard,~@profile,~@public,~@snippets),
]
run_commands(cmds)
end
end
desc "GITLAB | Run project spinach features"
task :spinach_project do
desc "GitLab | Spinach | Run other spinach features"
task :other do
cmds = [
%W(rake gitlab:setup),
%W(spinach --tags ~@admin,~@dashboard,~@profile,~@public,~@snippets),
%W(spinach --tags @admin,@dashboard,@profile,@public,@snippets),
]
run_commands(cmds)
end
end
desc "GITLAB | Run other spinach features"
task :spinach_other do
desc "GitLab | Run spinach"
task :spinach do
cmds = [
%W(rake gitlab:setup),
%W(spinach --tags @admin,@dashboard,@profile,@public,@snippets),
%W(spinach),
]
run_commands(cmds)
end
......
Rake::Task["test"].clear
desc "GITLAB | Run all tests"
desc "GitLab | Run all tests"
task :test do
Rake::Task["gitlab:test"].invoke
end
......@@ -8,6 +8,6 @@ end
unless Rails.env.production?
require 'coveralls/rake/task'
Coveralls::RakeTask.new
desc "GITLAB | Run all tests on CI with simplecov"
desc "GitLab | Run all tests on CI with simplecov"
task :test_ci => [:rubocop, :brakeman, 'jasmine:ci', :spinach, :spec, 'coveralls:push']
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment