show group runners on runners page
This commit is contained in:
parent
eba1a05f15
commit
4ccf734e38
|
@ -67,10 +67,14 @@ module Projects
|
||||||
|
|
||||||
def define_runners_variables
|
def define_runners_variables
|
||||||
@project_runners = @project.runners.ordered
|
@project_runners = @project.runners.ordered
|
||||||
|
|
||||||
@assignable_runners = current_user.ci_authorized_runners
|
@assignable_runners = current_user.ci_authorized_runners
|
||||||
.assignable_for(project).ordered.page(params[:page]).per(20)
|
.assignable_for(project).ordered.page(params[:page]).per(20)
|
||||||
@shared_runners = ::Ci::Runner.shared.active
|
@shared_runners = ::Ci::Runner.shared.active
|
||||||
|
|
||||||
@shared_runners_count = @shared_runners.count(:all)
|
@shared_runners_count = @shared_runners.count(:all)
|
||||||
|
|
||||||
|
@group_runners = ::Ci::Runner.belonging_to_group(@project.id)
|
||||||
end
|
end
|
||||||
|
|
||||||
def define_secret_variables
|
def define_secret_variables
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
%h3 Group Runners
|
||||||
|
|
||||||
|
.bs-callout.bs-callout-warning
|
||||||
|
GitLab Group Runners can execute code for all the projects in this group.
|
||||||
|
They can be managed using the #{link_to 'Runners API', help_page_path('api/runners.md')}.
|
||||||
|
|
||||||
|
- if !@project.group
|
||||||
|
This project does not belong to a group and can therefore not make use of group Runners.
|
||||||
|
|
||||||
|
- 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' }
|
||||||
|
|
||||||
|
- else
|
||||||
|
%h4.underlined-title Available group Runners : #{@group_runners.count}
|
||||||
|
%ul.bordered-list
|
||||||
|
= render partial: 'projects/runners/runner', collection: @group_runners, as: :runner
|
|
@ -23,3 +23,7 @@
|
||||||
= render 'projects/runners/specific_runners'
|
= render 'projects/runners/specific_runners'
|
||||||
.col-sm-6
|
.col-sm-6
|
||||||
= render 'projects/runners/shared_runners'
|
= render 'projects/runners/shared_runners'
|
||||||
|
.row
|
||||||
|
.col-sm-6
|
||||||
|
.col-sm-6
|
||||||
|
= render 'projects/runners/group_runners'
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
- else
|
- else
|
||||||
- runner_project = @project.runner_projects.find_by(runner_id: runner)
|
- runner_project = @project.runner_projects.find_by(runner_id: runner)
|
||||||
= link_to 'Disable for this project', project_runner_project_path(@project, runner_project), data: { confirm: "Are you sure?" }, method: :delete, class: 'btn btn-danger btn-sm'
|
= link_to 'Disable for this project', project_runner_project_path(@project, runner_project), data: { confirm: "Are you sure?" }, method: :delete, class: 'btn btn-danger btn-sm'
|
||||||
- elsif runner.specific?
|
- elsif runner.project?
|
||||||
= form_for [@project.namespace.becomes(Namespace), @project, @project.runner_projects.new] do |f|
|
= form_for [@project.namespace.becomes(Namespace), @project, @project.runner_projects.new] do |f|
|
||||||
= f.hidden_field :runner_id, value: runner.id
|
= f.hidden_field :runner_id, value: runner.id
|
||||||
= f.submit 'Enable for this project', class: 'btn btn-sm'
|
= f.submit 'Enable for this project', class: 'btn btn-sm'
|
||||||
|
|
|
@ -181,4 +181,44 @@ feature 'Runners' do
|
||||||
expect(page.find('.shared-runners-description')).to have_content('Disable shared Runners')
|
expect(page.find('.shared-runners-description')).to have_content('Disable shared Runners')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'group runners' do
|
||||||
|
background do
|
||||||
|
project.add_master(user)
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'project without a group' do
|
||||||
|
given(:project) { create :project }
|
||||||
|
|
||||||
|
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.'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'project with a group but no group runner' do
|
||||||
|
given(:group) { create :group }
|
||||||
|
given(:project) { create :project, group: group }
|
||||||
|
|
||||||
|
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.'
|
||||||
|
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' }
|
||||||
|
|
||||||
|
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
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue