Skip to content

Commit

Permalink
Merge branch 'split-tests' into 'master'
Browse files Browse the repository at this point in the history
Split rspec and spinach tests in parallel

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

See merge request !874
  • Loading branch information
dzaporozhets committed Jun 23, 2015
2 parents 541f767 + b8f12d1 commit b902a9b
Show file tree
Hide file tree
Showing 23 changed files with 91 additions and 73 deletions.
36 changes: 29 additions & 7 deletions .gitlab-ci.yml
Expand Up @@ -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:
Expand Down
2 changes: 1 addition & 1 deletion features/project/source/browse_files.feature
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion lib/tasks/cache.rake
@@ -1,5 +1,5 @@
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.
Expand Down
4 changes: 2 additions & 2 deletions lib/tasks/dev.rake
@@ -1,14 +1,14 @@
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
Expand Down
4 changes: 2 additions & 2 deletions lib/tasks/gitlab/backup.rake
Expand Up @@ -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
Expand All @@ -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
Expand Down
8 changes: 4 additions & 4 deletions lib/tasks/gitlab/bulk_add_permission.rake
@@ -1,6 +1,6 @@
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)
Expand All @@ -13,15 +13,15 @@ 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)
puts "Importing #{user.email} users into #{project_ids.size} projects"
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)
Expand All @@ -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
Expand Down
10 changes: 5 additions & 5 deletions lib/tasks/gitlab/check.rake
@@ -1,5 +1,5 @@
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
Expand All @@ -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"
Expand Down Expand Up @@ -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"
Expand Down Expand Up @@ -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"
Expand Down Expand Up @@ -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, '*')
Expand Down
6 changes: 3 additions & 3 deletions lib/tasks/gitlab/cleanup.rake
@@ -1,6 +1,6 @@
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']
Expand Down Expand Up @@ -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']
Expand Down Expand Up @@ -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']
Expand Down
2 changes: 1 addition & 1 deletion lib/tasks/gitlab/enable_automerge.rake
@@ -1,6 +1,6 @@
namespace :gitlab do
namespace :satellites do
desc "GITLAB | Create satellite repos"
desc "GitLab | Create satellite repos"
task create: :environment do
create_satellites
end
Expand Down
2 changes: 1 addition & 1 deletion lib/tasks/gitlab/generate_docs.rake
@@ -1,5 +1,5 @@
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
Expand Down
2 changes: 1 addition & 1 deletion lib/tasks/gitlab/import.rake
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion lib/tasks/gitlab/info.rake
@@ -1,6 +1,6 @@
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
Expand Down
2 changes: 1 addition & 1 deletion lib/tasks/gitlab/setup.rake
@@ -1,5 +1,5 @@
namespace :gitlab do
desc "GITLAB | Setup production application"
desc "GitLab | Setup production application"
task setup: :environment do
setup_db
end
Expand Down
6 changes: 3 additions & 3 deletions lib/tasks/gitlab/shell.rake
@@ -1,6 +1,6 @@
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

Expand Down Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion lib/tasks/gitlab/test.rake
@@ -1,5 +1,5 @@
namespace :gitlab do
desc "GITLAB | Run all tests"
desc "GitLab | Run all tests"
task :test do
cmds = [
%W(rake brakeman),
Expand Down
6 changes: 3 additions & 3 deletions lib/tasks/gitlab/web_hook.rake
@@ -1,6 +1,6 @@
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']
Expand All @@ -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']
Expand All @@ -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']

Expand Down
2 changes: 1 addition & 1 deletion lib/tasks/migrate/add_limits_mysql.rake
@@ -1,6 +1,6 @@
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
Expand Down
2 changes: 1 addition & 1 deletion lib/tasks/migrate/migrate_iids.rake
@@ -1,4 +1,4 @@
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|
Expand Down
2 changes: 1 addition & 1 deletion lib/tasks/setup.rake
@@ -1,4 +1,4 @@
desc "GITLAB | Setup gitlab db"
desc "GitLab | Setup gitlab db"
task :setup do
Rake::Task["gitlab:setup"].invoke
end
6 changes: 3 additions & 3 deletions lib/tasks/sidekiq.rake
@@ -1,10 +1,10 @@
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
Expand All @@ -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
Expand Down
8 changes: 4 additions & 4 deletions lib/tasks/spec.rake
@@ -1,7 +1,7 @@
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),
Expand All @@ -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),
Expand All @@ -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),
Expand All @@ -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),
Expand Down

0 comments on commit b902a9b

Please sign in to comment.