Move Pipelines settings under `gitlab.com/gitlab-org/gitlab-ce/pipelines/settings`
This commit is contained in:
parent
22be5aed1d
commit
4a74798a7b
|
@ -1,5 +1,5 @@
|
||||||
class Projects::BuildsController < Projects::ApplicationController
|
class Projects::BuildsController < Projects::ApplicationController
|
||||||
before_action :build, except: [:index, :cancel_all, :settings]
|
before_action :build, except: [:index, :cancel_all]
|
||||||
before_action :authorize_read_build!, except: [:cancel, :cancel_all, :retry]
|
before_action :authorize_read_build!, except: [:cancel, :cancel_all, :retry]
|
||||||
before_action :authorize_update_build!, except: [:index, :show, :status, :raw]
|
before_action :authorize_update_build!, except: [:index, :show, :status, :raw]
|
||||||
layout 'project'
|
layout 'project'
|
||||||
|
@ -27,11 +27,6 @@ class Projects::BuildsController < Projects::ApplicationController
|
||||||
redirect_to namespace_project_builds_path(project.namespace, project)
|
redirect_to namespace_project_builds_path(project.namespace, project)
|
||||||
end
|
end
|
||||||
|
|
||||||
def settings
|
|
||||||
@ref = params[:ref] || @project.default_branch || 'master'
|
|
||||||
@build_badge = Gitlab::Badge::Build.new(@project, @ref)
|
|
||||||
end
|
|
||||||
|
|
||||||
def show
|
def show
|
||||||
@builds = @project.pipelines.find_by_sha(@build.sha).builds.order('id DESC')
|
@builds = @project.pipelines.find_by_sha(@build.sha).builds.order('id DESC')
|
||||||
@builds = @builds.where("id not in (?)", @build.id)
|
@builds = @builds.where("id not in (?)", @build.id)
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
class Projects::PipelinesController < Projects::ApplicationController
|
class Projects::PipelinesController < Projects::ApplicationController
|
||||||
before_action :pipeline, except: [:index, :new, :create]
|
before_action :pipeline, except: [:index, :new, :create, :settings, :update_settings]
|
||||||
before_action :commit, only: [:show]
|
before_action :commit, only: [:show]
|
||||||
before_action :authorize_read_pipeline!
|
before_action :authorize_read_pipeline!
|
||||||
before_action :authorize_create_pipeline!, only: [:new, :create]
|
before_action :authorize_create_pipeline!, only: [:new, :create]
|
||||||
before_action :authorize_update_pipeline!, only: [:retry, :cancel]
|
before_action :authorize_update_pipeline!, only: [:retry, :cancel]
|
||||||
|
before_action :authorize_admin_pipeline!, only: [:settings, :update_settings]
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@scope = params[:scope]
|
@scope = params[:scope]
|
||||||
|
@ -43,12 +44,42 @@ class Projects::PipelinesController < Projects::ApplicationController
|
||||||
redirect_back_or_default default: namespace_project_pipelines_path(project.namespace, project)
|
redirect_back_or_default default: namespace_project_pipelines_path(project.namespace, project)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def settings
|
||||||
|
@ref = params[:ref] || @project.default_branch || 'master'
|
||||||
|
@build_badge = Gitlab::Badge::Build.new(@project, @ref)
|
||||||
|
end
|
||||||
|
|
||||||
|
def update_settings
|
||||||
|
status = ::Projects::UpdateService.new(@project, current_user, pipelines_settings_params).execute
|
||||||
|
|
||||||
|
respond_to do |format|
|
||||||
|
if status
|
||||||
|
flash[:notice] = "CI/CD Pipelines settings for '#{@project.name}' was successfully updated."
|
||||||
|
format.html do
|
||||||
|
redirect_to(
|
||||||
|
settings_namespace_project_pipelines_path(@project.namespace, @project),
|
||||||
|
notice: "CI/CD Pipelines settings for '#{@project.name}' was successfully updated."
|
||||||
|
)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
format.html { render 'settings' }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def create_params
|
def create_params
|
||||||
params.require(:pipeline).permit(:ref)
|
params.require(:pipeline).permit(:ref)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def pipelines_settings_params
|
||||||
|
params.require(:project).permit(
|
||||||
|
:runners_token, :builds_enabled, :build_allow_git_fetch, :build_timeout_in_minutes, :build_coverage_regex,
|
||||||
|
:public_builds
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
def pipeline
|
def pipeline
|
||||||
@pipeline ||= project.pipelines.find_by!(id: params[:id])
|
@pipeline ||= project.pipelines.find_by!(id: params[:id])
|
||||||
end
|
end
|
||||||
|
|
|
@ -25,7 +25,7 @@ class Projects::RefsController < Projects::ApplicationController
|
||||||
when "graphs_commits"
|
when "graphs_commits"
|
||||||
commits_namespace_project_graph_path(@project.namespace, @project, @id)
|
commits_namespace_project_graph_path(@project.namespace, @project, @id)
|
||||||
when "badges"
|
when "badges"
|
||||||
settings_namespace_project_builds_path(@project.namespace, @project, ref: @id)
|
settings_namespace_project_pipelines_path(@project.namespace, @project, ref: @id)
|
||||||
else
|
else
|
||||||
namespace_project_commits_path(@project.namespace, @project, @id)
|
namespace_project_commits_path(@project.namespace, @project, @id)
|
||||||
end
|
end
|
||||||
|
|
|
@ -23,6 +23,7 @@ module Projects
|
||||||
if project.previous_changes.include?('path')
|
if project.previous_changes.include?('path')
|
||||||
project.rename_repo
|
project.rename_repo
|
||||||
end
|
end
|
||||||
|
true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
= link_to namespace_project_triggers_path(@project.namespace, @project), title: 'Triggers' do
|
= link_to namespace_project_triggers_path(@project.namespace, @project), title: 'Triggers' do
|
||||||
%span
|
%span
|
||||||
Triggers
|
Triggers
|
||||||
= nav_link(controller: :builds) do
|
= nav_link(controller: :pipelines) do
|
||||||
= link_to settings_namespace_project_builds_path(@project.namespace, @project), title: 'CI/CD Pipelines' do
|
= link_to settings_namespace_project_pipelines_path(@project.namespace, @project), title: 'CI/CD Pipelines' do
|
||||||
%span
|
%span
|
||||||
CI/CD Pipelines
|
CI/CD Pipelines
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
.col-lg-9
|
.col-lg-9
|
||||||
%h5.prepend-top-0
|
%h5.prepend-top-0
|
||||||
Pipelines
|
Pipelines
|
||||||
= form_for [@project.namespace.becomes(Namespace), @project], remote: true, authenticity_token: true do |f|
|
= form_for @project, url: settings_namespace_project_pipelines_path(@project.namespace.becomes(Namespace), @project), remote: true, authenticity_token: true do |f|
|
||||||
%fieldset.builds-feature
|
%fieldset.builds-feature
|
||||||
- unless @repository.gitlab_ci_yml
|
- unless @repository.gitlab_ci_yml
|
||||||
.form-group
|
.form-group
|
|
@ -733,6 +733,11 @@ Rails.application.routes.draw do
|
||||||
resources :triggers, only: [:index, :create, :destroy]
|
resources :triggers, only: [:index, :create, :destroy]
|
||||||
|
|
||||||
resources :pipelines, only: [:index, :new, :create, :show] do
|
resources :pipelines, only: [:index, :new, :create, :show] do
|
||||||
|
collection do
|
||||||
|
get :settings
|
||||||
|
patch :settings, to: 'pipelines#update_settings'
|
||||||
|
end
|
||||||
|
|
||||||
member do
|
member do
|
||||||
post :cancel
|
post :cancel
|
||||||
post :retry
|
post :retry
|
||||||
|
@ -744,7 +749,6 @@ Rails.application.routes.draw do
|
||||||
resources :builds, only: [:index, :show], constraints: { id: /\d+/ } do
|
resources :builds, only: [:index, :show], constraints: { id: /\d+/ } do
|
||||||
collection do
|
collection do
|
||||||
post :cancel_all
|
post :cancel_all
|
||||||
get :settings
|
|
||||||
end
|
end
|
||||||
|
|
||||||
member do
|
member do
|
||||||
|
|
|
@ -1,14 +1,15 @@
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
|
|
||||||
describe "Pipelines" do
|
feature "Pipelines", feature: true do
|
||||||
include GitlabRoutingHelper
|
include GitlabRoutingHelper
|
||||||
|
|
||||||
let(:project) { create(:empty_project) }
|
let(:project) { create(:empty_project) }
|
||||||
let(:user) { create(:user) }
|
let(:user) { create(:user) }
|
||||||
|
let(:role) { :developer }
|
||||||
|
|
||||||
before do
|
before do
|
||||||
login_as(user)
|
login_as(user)
|
||||||
project.team << [user, :developer]
|
project.team << [user, role]
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'GET /:project/pipelines' do
|
describe 'GET /:project/pipelines' do
|
||||||
|
@ -186,4 +187,30 @@ describe "Pipelines" do
|
||||||
it { expect(page).to have_content('Reference not found') }
|
it { expect(page).to have_content('Reference not found') }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe 'Pipelines settings' do
|
||||||
|
background do
|
||||||
|
visit settings_namespace_project_pipelines_path(project.namespace, project)
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'for developer' do
|
||||||
|
given(:role) { :developer }
|
||||||
|
|
||||||
|
scenario 'to be disallowed to view' do
|
||||||
|
expect(page.status_code).to eq(404)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'for master' do
|
||||||
|
given(:role) { :master }
|
||||||
|
|
||||||
|
scenario 'be allowed to change' do
|
||||||
|
fill_in('Test coverage parsing', with: 'coverage_regex')
|
||||||
|
click_on 'Save changes'
|
||||||
|
|
||||||
|
expect(page.status_code).to eq(200)
|
||||||
|
expect(page).to have_field('Test coverage parsing', with: 'coverage_regex')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -6,7 +6,7 @@ feature 'list of badges' do
|
||||||
project = create(:project)
|
project = create(:project)
|
||||||
project.team << [user, :master]
|
project.team << [user, :master]
|
||||||
login_as(user)
|
login_as(user)
|
||||||
visit settings_namespace_project_builds_path(project.namespace, project)
|
visit settings_namespace_project_pipelines_path(project.namespace, project)
|
||||||
end
|
end
|
||||||
|
|
||||||
scenario 'user displays list of badges' do
|
scenario 'user displays list of badges' do
|
||||||
|
|
Loading…
Reference in New Issue