[refs #223] Add current duration and project average build time

This commit is contained in:
konstantin.grabar 2012-04-12 18:55:32 +04:00
parent 26a468f6e3
commit 65f1cfc822
8 changed files with 31 additions and 1 deletions

View File

@ -139,6 +139,14 @@ class BuildList < ActiveRecord::Base
{:project => project.name, :version => project_version, :arch => arch.name}.inspect {:project => project.name, :version => project_version, :arch => arch.name}.inspect
end end
def current_duration
(Time.now - started_at).to_i
end
def human_current_duration
I18n.t("layout.build_lists.human_current_duration", {:minutes => (current_duration/60).to_i, :seconds => (current_duration%60).to_i})
end
def human_duration def human_duration
I18n.t("layout.build_lists.human_duration", {:minutes => (duration/60).to_i, :seconds => (duration%60).to_i}) I18n.t("layout.build_lists.human_duration", {:minutes => (duration/60).to_i, :seconds => (duration%60).to_i})
end end

View File

@ -6,7 +6,7 @@ class BuildListObserver < ActiveRecord::Observer
record.started_at = Time.now if record.status == BuildServer::BUILD_STARTED record.started_at = Time.now if record.status == BuildServer::BUILD_STARTED
if [BuildServer::BUILD_ERROR, BuildServer::SUCCESS].include? record.status if [BuildServer::BUILD_ERROR, BuildServer::SUCCESS].include? record.status
# stores time interval beetwin build start and finish in seconds # stores time interval beetwin build start and finish in seconds
record.duration = (Time.now - record.started_at).to_i record.duration = record.current_duration
end end
end end
end end

View File

@ -203,6 +203,15 @@ class Project < ActiveRecord::Base
recipients recipients
end end
def average_build_time
build_lists.where(:status => BuildServer::SUCCESS).average(:duration)
end
def human_average_build_time
time = average_build_time
I18n.t("layout.projects.human_average_build_time", :minutes => (time/60).to_i, :seconds => (time%60).to_i)
end
protected protected
def build_path(dir) def build_path(dir)

View File

@ -57,6 +57,15 @@
.leftside.width125 .leftside.width125
.leftside= @build_list.human_duration .leftside= @build_list.human_duration
.both .both
- if !@build_list.finished? && @build_list.started_at
%br
.leftside.width125
.leftside= @build_list.human_current_duration
.both
.leftside.width125
.leftside= @build_list.project.human_average_build_time
.both
.hr .hr
%h3= t("layout.build_lists.items_header") %h3= t("layout.build_lists.items_header")
- if @item_groups.blank? - if @item_groups.blank?

View File

@ -61,6 +61,7 @@ en:
new_header: New build new_header: New build
main_data: Main data main_data: Main data
human_duration: Build lasted %{minutes} minutes %{seconds} seconds human_duration: Build lasted %{minutes} minutes %{seconds} seconds
human_current_duration: Build currently takes %{minutes} minutes %{seconds} seconds
ownership: ownership:
header: Build list ownership header: Build list ownership

View File

@ -60,6 +60,7 @@ ru:
new_header: Новая сборка new_header: Новая сборка
main_data: Основные данные main_data: Основные данные
human_duration: Сборка продлилась %{minutes} минут %{seconds} секунд human_duration: Сборка продлилась %{minutes} минут %{seconds} секунд
human_current_duration: Сборка длится уже %{minutes} минут %{seconds} секунд
ownership: ownership:
header: Принадлежность заданий header: Принадлежность заданий

View File

@ -33,6 +33,7 @@ en:
sections: Sections sections: Sections
has_issue_description: Tracker adds a lightweight issue management system tightly integrated with your repository. has_issue_description: Tracker adds a lightweight issue management system tightly integrated with your repository.
has_wiki_description: Wikis are the simplest way to allow other users to contribute content. Any user can create and edit pages for documentation, examples, support or anything you wish. has_wiki_description: Wikis are the simplest way to allow other users to contribute content. Any user can create and edit pages for documentation, examples, support or anything you wish.
human_average_build_time: Average build time is %{minutes} minutes %{seconds} seconds
git_help: git_help:
cloning: Cloning the repository cloning: Cloning the repository

View File

@ -33,6 +33,7 @@ ru:
sections: Разделы sections: Разделы
has_issue_description: Трэкер предоставляет лекговесный менеджер для задач по разработке Вашего проекта. has_issue_description: Трэкер предоставляет лекговесный менеджер для задач по разработке Вашего проекта.
has_wiki_description: Wiki - это самый простой способ предоставить другим вносить свой вклад в развитие Вашего проекта. Каждый пользователь нашего сервиса может использовать Wiki для документирования, примеров, поддержки или всего другого, в чем у Вас появится необходимость. has_wiki_description: Wiki - это самый простой способ предоставить другим вносить свой вклад в развитие Вашего проекта. Каждый пользователь нашего сервиса может использовать Wiki для документирования, примеров, поддержки или всего другого, в чем у Вас появится необходимость.
human_average_build_time: Среднее время сборки %{minutes} минут %{seconds} секунд
diff_show_header: "%{files} с %{additions} и %{deletions}." diff_show_header: "%{files} с %{additions} и %{deletions}."
about_subheader: "О проекте" about_subheader: "О проекте"