diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2014-11-04 15:09:04 +0200 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2014-11-04 15:09:04 +0200 |
commit | 98051316f821d99df2790709b364b3ecce19468e (patch) | |
tree | 06360ad959256bdda843b93ff930d683555b13b9 | |
parent | 6b9019bbc2f61c7751080f9323eba4cb5cf62dcf (diff) | |
download | gitlab-ci-98051316f821d99df2790709b364b3ecce19468e.tar.gz |
Partly integrate commits
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
-rw-r--r-- | app/assets/stylesheets/sections/projects.scss | 10 | ||||
-rw-r--r-- | app/controllers/projects_controller.rb | 6 | ||||
-rw-r--r-- | app/helpers/builds_helper.rb | 10 | ||||
-rw-r--r-- | app/helpers/gitlab_helper.rb | 2 | ||||
-rw-r--r-- | app/helpers/projects_helper.rb | 10 | ||||
-rw-r--r-- | app/models/commit.rb | 28 | ||||
-rw-r--r-- | app/models/project.rb | 2 | ||||
-rw-r--r-- | app/views/layouts/project.html.haml | 4 | ||||
-rw-r--r-- | app/views/projects/show.html.haml | 11 |
9 files changed, 61 insertions, 22 deletions
diff --git a/app/assets/stylesheets/sections/projects.scss b/app/assets/stylesheets/sections/projects.scss index 4ea7dbd..6ed1e06 100644 --- a/app/assets/stylesheets/sections/projects.scss +++ b/app/assets/stylesheets/sections/projects.scss @@ -23,3 +23,13 @@ vertical-align: middle !important; } } + +.commit-info { + font-size: 14px; + + .attr-name { + font-weight: 300; + color: #666; + margin-right: 5px; + } +} diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 3a5ceb3..9b1efb5 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -36,9 +36,9 @@ class ProjectsController < ApplicationController @ref = params[:ref] - @builds = @project.builds - @builds = @builds.where(ref: @ref) if @ref - @builds = @builds.order('id DESC').page(params[:page]).per(20) + @commits = @project.commits + @commits = @commits.where(ref: @ref) if @ref + @commits = @commits.order('id DESC').page(params[:page]).per(20) end def integration diff --git a/app/helpers/builds_helper.rb b/app/helpers/builds_helper.rb index 0c1e264..4182675 100644 --- a/app/helpers/builds_helper.rb +++ b/app/helpers/builds_helper.rb @@ -28,4 +28,14 @@ module BuildsHelper def build_url(build) project_build_url(build.project, build) end + + def build_status_alert_class(build) + if build.success? + 'alert-success' + elsif build.failed? || build.canceled? + 'alert-danger' + else + 'alert-warning' + end + end end diff --git a/app/helpers/gitlab_helper.rb b/app/helpers/gitlab_helper.rb index a8cac14..a5d3192 100644 --- a/app/helpers/gitlab_helper.rb +++ b/app/helpers/gitlab_helper.rb @@ -15,6 +15,6 @@ module GitlabHelper def gitlab_commit_link project, sha gitlab_url = project.gitlab_url.dup gitlab_url << "/commit/#{sha}" - link_to sha, gitlab_url + link_to sha[0...10], gitlab_url end end diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index d8d9e39..ebc06c3 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -9,16 +9,6 @@ module ProjectsHelper end end - def build_status_alert_class build - if build.success? - 'alert-success' - elsif build.failed? || build.canceled? - 'alert-danger' - else - 'alert-warning' - end - end - def ref_tab_class ref = nil 'active' if ref == @ref end diff --git a/app/models/commit.rb b/app/models/commit.rb index cb08c24..08e2888 100644 --- a/app/models/commit.rb +++ b/app/models/commit.rb @@ -15,12 +15,17 @@ class Commit < ActiveRecord::Base belongs_to :project has_many :builds + has_many :jobs, through: :builds serialize :push_data validates_presence_of :ref, :sha, :before_sha, :push_data validate :valid_commit_sha + def to_param + sha + end + def last_build builds.last end @@ -103,4 +108,27 @@ class Commit < ActiveRecord::Base build end end + + def builds_without_retry + builds.where('id IN (SELECT MAX(id) FROM builds GROUP BY job_id)') + end + + def status + 'success' + end + + def success? + end + + def failed? + end + + def canceled? + end + + def duration + end + + def finished_at + end end diff --git a/app/models/project.rb b/app/models/project.rb index 817c668..096eb02 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -51,7 +51,7 @@ class Project < ActiveRecord::Base scope :public_only, ->() { where(public: true) } before_validation :set_default_values - after_save :update_jobs + after_save :update_jobs, if: ->(project) { project.scripts_changed? } class << self def base_build_script diff --git a/app/views/layouts/project.html.haml b/app/views/layouts/project.html.haml index 9b6355a..5780904 100644 --- a/app/views/layouts/project.html.haml +++ b/app/views/layouts/project.html.haml @@ -24,8 +24,8 @@ = nav_link path: 'projects#show' do = link_to project_path(@project) do %i.icon-list-alt - Builds - %small.pull-right= @project.builds.count + Commits + %small.pull-right= @project.commits.count = nav_link path: 'charts#show' do = link_to project_charts_path(@project) do %i.icon-bar-chart diff --git a/app/views/projects/show.html.haml b/app/views/projects/show.html.haml index 633ad4f..fe23277 100644 --- a/app/views/projects/show.html.haml +++ b/app/views/projects/show.html.haml @@ -3,7 +3,7 @@ %ul.nav.nav-tabs.append-bottom-20 %li{class: ref_tab_class} - = link_to 'All builds', project_path(@project) + = link_to 'All commits', project_path(@project) - @project.tracked_refs.each do |ref| %li{class: ref_tab_class(ref)} = link_to ref, project_path(@project, ref: ref) @@ -45,10 +45,11 @@ - if @project.coverage_enabled? %th Coverage - = render @builds + = render @commits -= paginate @builds -- if @builds.empty? += paginate @commits + +- if @commits.empty? .bs-callout - %h4 No builds yet + %h4 No commits yet |