summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexis Reigel <alexis.reigel.ext@siemens.com>2017-12-19 18:04:33 +0100
committerAlexis Reigel <alexis.reigel.ext@siemens.com>2018-02-28 09:51:23 +0100
commitf003cec95ea74c88125350438169a9325db8ade9 (patch)
tree8242b5b0d97bc9b281c898c396b2ac5e3fc0d709
parent45f205a2dc20bd9444e6deede920e36aa5830bc2 (diff)
downloadgitlab-ce-f003cec95ea74c88125350438169a9325db8ade9.tar.gz
show group runners setup only to group master
-rw-r--r--app/views/projects/runners/_group_runners.html.haml7
-rw-r--r--spec/features/runners_spec.rb82
2 files changed, 59 insertions, 30 deletions
diff --git a/app/views/projects/runners/_group_runners.html.haml b/app/views/projects/runners/_group_runners.html.haml
index 798c457227f..c35db60f625 100644
--- a/app/views/projects/runners/_group_runners.html.haml
+++ b/app/views/projects/runners/_group_runners.html.haml
@@ -20,8 +20,11 @@
- elsif @group_runners.empty?
This group does not provide any group Runners yet.
- = render partial: 'ci/runner/how_to_setup_runner',
- locals: { registration_token: @project.group.runners_token, type: 'group' }
+ - if can?(current_user, :admin_pipeline, @project.group)
+ = render partial: 'ci/runner/how_to_setup_runner',
+ locals: { registration_token: @project.group.runners_token, type: 'group' }
+ - else
+ Ask your group master to setup a group Runner.
- else
%h4.underlined-title Available group Runners : #{@group_runners.count}
diff --git a/spec/features/runners_spec.rb b/spec/features/runners_spec.rb
index dcd06a4015d..8c8c545d24c 100644
--- a/spec/features/runners_spec.rb
+++ b/spec/features/runners_spec.rb
@@ -187,51 +187,77 @@ feature 'Runners' do
project.add_master(user)
end
- context 'project without a group' do
- given(:project) { create :project }
+ given(:group) { create :group }
- scenario 'group runners are not available' do
- visit runners_path(project)
+ context 'as project and group master' do
+ background do
+ group.add_master(user)
+ end
+
+ context 'project with a group but no group runner' do
+ given(:project) { create :project, group: group }
+
+ scenario 'group runners are not available' do
+ visit runners_path(project)
- expect(page).to have_content 'This project does not belong to a group and can therefore not make use of group Runners.'
+ expect(page).to have_content 'This group does not provide any group Runners yet.'
+
+ expect(page).to have_content 'How to setup a group Runner for a new project'
+ expect(page).not_to have_content 'Ask your group master to setup a group Runner.'
+ end
end
end
- context 'project with a group but no group runner' do
- given(:group) { create :group }
- given(:project) { create :project, group: group }
+ context 'as project master' do
+ context 'project without a group' do
+ given(:project) { create :project }
- scenario 'group runners are not available' do
- visit runners_path(project)
+ scenario 'group runners are not available' do
+ visit runners_path(project)
- expect(page).to have_content 'This group does not provide any group Runners yet.'
+ expect(page).to have_content 'This project does not belong to a group and can therefore not make use of group Runners.'
+ end
end
- end
- context 'project with a group and a group runner' do
- given(:group) { create :group }
- given(:project) { create :project, group: group }
- given!(:ci_runner) { create :ci_runner, groups: [group], description: 'group-runner' }
+ context 'project with a group but no group runner' do
+ given(:group) { create :group }
+ given(:project) { create :project, group: group }
- scenario 'group runners are available' do
- visit runners_path(project)
+ scenario 'group runners are not available' do
+ visit runners_path(project)
+
+ expect(page).to have_content 'This group does not provide any group Runners yet.'
- expect(page).to have_content 'Available group Runners : 1'
- expect(page).to have_content 'group-runner'
+ expect(page).not_to have_content 'How to setup a group Runner for a new project'
+ expect(page).to have_content 'Ask your group master to setup a group Runner.'
+ end
end
- scenario 'group runners may be disabled for a project' do
- visit runners_path(project)
+ context 'project with a group and a group runner' do
+ given(:group) { create :group }
+ given(:project) { create :project, group: group }
+ given!(:ci_runner) { create :ci_runner, groups: [group], description: 'group-runner' }
+
+ scenario 'group runners are available' do
+ visit runners_path(project)
+
+ expect(page).to have_content 'Available group Runners : 1'
+ expect(page).to have_content 'group-runner'
+ end
- click_on 'Disable group Runners'
+ scenario 'group runners may be disabled for a project' do
+ visit runners_path(project)
+
+ click_on 'Disable group Runners'
- expect(page).to have_content 'Enable group Runners'
- expect(project.reload.group_runners_enabled).to be false
+ expect(page).to have_content 'Enable group Runners'
+ expect(project.reload.group_runners_enabled).to be false
- click_on 'Enable group Runners'
+ click_on 'Enable group Runners'
- expect(page).to have_content 'Disable group Runners'
- expect(project.reload.group_runners_enabled).to be true
+ expect(page).to have_content 'Disable group Runners'
+ expect(project.reload.group_runners_enabled).to be true
+ end
end
end
end