Move CI charts to project graphs area
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
This commit is contained in:
parent
4bc1e040d4
commit
eae27d1ecb
14 changed files with 69 additions and 69 deletions
|
@ -1,24 +0,0 @@
|
|||
module Ci
|
||||
class ChartsController < Ci::ApplicationController
|
||||
before_action :authenticate_user!
|
||||
before_action :project
|
||||
before_action :authorize_access_project!
|
||||
before_action :authorize_manage_project!
|
||||
|
||||
layout 'ci/project'
|
||||
|
||||
def show
|
||||
@charts = {}
|
||||
@charts[:week] = Ci::Charts::WeekChart.new(@project)
|
||||
@charts[:month] = Ci::Charts::MonthChart.new(@project)
|
||||
@charts[:year] = Ci::Charts::YearChart.new(@project)
|
||||
@charts[:build_times] = Ci::Charts::BuildTime.new(@project)
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def project
|
||||
@project = Ci::Project.find(params[:project_id])
|
||||
end
|
||||
end
|
||||
end
|
|
@ -23,6 +23,16 @@ class Projects::GraphsController < Projects::ApplicationController
|
|||
@commits_per_month = @commits_graph.commits_per_month
|
||||
end
|
||||
|
||||
def ci
|
||||
ci_project = @project.gitlab_ci_project
|
||||
|
||||
@charts = {}
|
||||
@charts[:week] = Ci::Charts::WeekChart.new(ci_project)
|
||||
@charts[:month] = Ci::Charts::MonthChart.new(ci_project)
|
||||
@charts[:year] = Ci::Charts::YearChart.new(ci_project)
|
||||
@charts[:build_times] = Ci::Charts::BuildTime.new(ci_project)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def fetch_graph
|
||||
|
|
|
@ -1,21 +0,0 @@
|
|||
%fieldset
|
||||
%legend Overall
|
||||
%p
|
||||
Total:
|
||||
%strong= pluralize @project.builds.count(:all), 'build'
|
||||
%p
|
||||
Successful:
|
||||
%strong= pluralize @project.builds.success.count(:all), 'build'
|
||||
%p
|
||||
Failed:
|
||||
%strong= pluralize @project.builds.failed.count(:all), 'build'
|
||||
|
||||
%p
|
||||
Success ratio:
|
||||
%strong
|
||||
#{success_ratio(@project.builds.success, @project.builds.failed)}%
|
||||
|
||||
%p
|
||||
Commits covered:
|
||||
%strong
|
||||
= @project.commits.count(:all)
|
|
@ -1,4 +0,0 @@
|
|||
#charts.ci-charts
|
||||
= render 'builds'
|
||||
= render 'build_times'
|
||||
= render 'overall'
|
|
@ -10,12 +10,6 @@
|
|||
%span
|
||||
Commits
|
||||
%span.count= @project.commits.count
|
||||
- if can?(current_user, :admin_project, gl_project)
|
||||
= nav_link path: 'charts#show' do
|
||||
= link_to ci_project_charts_path(@project) do
|
||||
= icon('bar-chart fw')
|
||||
%span
|
||||
Charts
|
||||
= nav_link path: ['runners#index', 'runners#show', 'runners#edit'] do
|
||||
= link_to ci_project_runners_path(@project) do
|
||||
= icon('cog fw')
|
||||
|
|
|
@ -3,3 +3,7 @@
|
|||
= link_to 'Contributors', namespace_project_graph_path
|
||||
= nav_link(action: :commits) do
|
||||
= link_to 'Commits', commits_namespace_project_graph_path
|
||||
- if @project.gitlab_ci?
|
||||
= nav_link(action: :ci) do
|
||||
= link_to ci_namespace_project_graph_path do
|
||||
Continuous Integration
|
||||
|
|
6
app/views/projects/graphs/ci.html.haml
Normal file
6
app/views/projects/graphs/ci.html.haml
Normal file
|
@ -0,0 +1,6 @@
|
|||
- page_title "Continuous Integration", "Graphs"
|
||||
= render 'head'
|
||||
#charts.ci-charts
|
||||
= render 'projects/graphs/ci/builds'
|
||||
= render 'projects/graphs/ci/build_times'
|
||||
= render 'projects/graphs/ci/overall'
|
22
app/views/projects/graphs/ci/_overall.haml
Normal file
22
app/views/projects/graphs/ci/_overall.haml
Normal file
|
@ -0,0 +1,22 @@
|
|||
- ci_project = @project.gitlab_ci_project
|
||||
%fieldset
|
||||
%legend Overall
|
||||
%p
|
||||
Total:
|
||||
%strong= pluralize ci_project.builds.count(:all), 'build'
|
||||
%p
|
||||
Successful:
|
||||
%strong= pluralize ci_project.builds.success.count(:all), 'build'
|
||||
%p
|
||||
Failed:
|
||||
%strong= pluralize ci_project.builds.failed.count(:all), 'build'
|
||||
|
||||
%p
|
||||
Success ratio:
|
||||
%strong
|
||||
#{success_ratio(ci_project.builds.success, ci_project.builds.failed)}%
|
||||
|
||||
%p
|
||||
Commits covered:
|
||||
%strong
|
||||
= ci_project.commits.count(:all)
|
|
@ -511,6 +511,7 @@ Gitlab::Application.routes.draw do
|
|||
resources :graphs, only: [:show], constraints: { id: /(?:[^.]|\.(?!json$))+/, format: /json/ } do
|
||||
member do
|
||||
get :commits
|
||||
get :ci
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -12,3 +12,9 @@ Feature: Project Graph
|
|||
Scenario: I should see project commits graphs
|
||||
When I visit project "Shop" commits graph page
|
||||
Then page should have commits graphs
|
||||
|
||||
@javascript
|
||||
Scenario: I should see project ci graphs
|
||||
Given project "Shop" has CI enabled
|
||||
When I visit project "Shop" CI graph page
|
||||
Then page should have CI graphs
|
||||
|
|
|
@ -7,12 +7,10 @@ class Spinach::Features::ProjectGraph < Spinach::FeatureSteps
|
|||
end
|
||||
|
||||
When 'I visit project "Shop" graph page' do
|
||||
project = Project.find_by(name: "Shop")
|
||||
visit namespace_project_graph_path(project.namespace, project, "master")
|
||||
end
|
||||
|
||||
step 'I visit project "Shop" commits graph page' do
|
||||
project = Project.find_by(name: "Shop")
|
||||
visit commits_namespace_project_graph_path(project.namespace, project, "master")
|
||||
end
|
||||
|
||||
|
@ -20,4 +18,24 @@ class Spinach::Features::ProjectGraph < Spinach::FeatureSteps
|
|||
expect(page).to have_content "Commit statistics for master"
|
||||
expect(page).to have_content "Commits per day of month"
|
||||
end
|
||||
|
||||
step 'I visit project "Shop" CI graph page' do
|
||||
visit ci_namespace_project_graph_path(project.namespace, project, 'master')
|
||||
end
|
||||
|
||||
step 'project "Shop" has CI enabled' do
|
||||
project.enable_ci(@user)
|
||||
end
|
||||
|
||||
step 'page should have CI graphs' do
|
||||
expect(page).to have_content 'Overall'
|
||||
expect(page).to have_content 'Builds chart for last week'
|
||||
expect(page).to have_content 'Builds chart for last month'
|
||||
expect(page).to have_content 'Builds chart for last year'
|
||||
expect(page).to have_content 'Commit duration in minutes for last 30 commits'
|
||||
end
|
||||
|
||||
def project
|
||||
project ||= Project.find_by(name: "Shop")
|
||||
end
|
||||
end
|
||||
|
|
|
@ -45,16 +45,4 @@ describe "Projects" do
|
|||
expect(find_field('Timeout').value).to eq '70'
|
||||
end
|
||||
end
|
||||
|
||||
describe "GET /ci/projects/:id/charts" do
|
||||
before do
|
||||
visit ci_project_charts_path(@project)
|
||||
end
|
||||
|
||||
it { expect(page).to have_content 'Overall' }
|
||||
it { expect(page).to have_content 'Builds chart for last week' }
|
||||
it { expect(page).to have_content 'Builds chart for last month' }
|
||||
it { expect(page).to have_content 'Builds chart for last year' }
|
||||
it { expect(page).to have_content 'Commit duration in minutes for last 30 commits' }
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue