From 94b88b34aea79474cbd0f64684b44e01df0c98ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Janne=20He=C3=9F?= Date: Tue, 9 Mar 2021 18:27:34 +0100 Subject: [PATCH] Show evaluation time in the evaluations overview Parts of this code have been authored by @grahamc --- src/lib/Hydra/View/TT.pm | 24 +++++++++++++++++++++++- src/root/jobset.tt | 1 + 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/lib/Hydra/View/TT.pm b/src/lib/Hydra/View/TT.pm index edaac447..f8b3fb64 100644 --- a/src/lib/Hydra/View/TT.pm +++ b/src/lib/Hydra/View/TT.pm @@ -3,13 +3,14 @@ package Hydra::View::TT; use strict; use base 'Catalyst::View::TT'; use Hydra::Helper::Nix; +use Time::Seconds; __PACKAGE__->config( TEMPLATE_EXTENSION => '.tt', ENCODING => 'utf-8', PRE_CHOMP => 1, POST_CHOMP => 1, - expose_methods => [qw/buildLogExists buildStepLogExists jobExists stripSSHUser/]); + expose_methods => [qw/buildLogExists buildStepLogExists jobExists relativeDuration stripSSHUser/]); sub buildLogExists { my ($self, $c, $build) = @_; @@ -25,6 +26,27 @@ sub buildStepLogExists { return defined findLog($c, $step->drvpath, @outPaths); } +=head2 relativeDuration + +Given an integer of seconds, return an English representation of the +duration as a string. + +Arguments: + +=over 1 + +=item C<$seconds> + +An integer number of seconds + +=back + +=cut +sub relativeDuration { + my ($self, $c, $seconds) = @_; + return Time::Seconds->new($seconds)->pretty(); +} + sub stripSSHUser { my ($self, $c, $name) = @_; if ($name =~ /^.*@(.*)$/) { diff --git a/src/root/jobset.tt b/src/root/jobset.tt index b775ddbd..b933f34c 100644 --- a/src/root/jobset.tt +++ b/src/root/jobset.tt @@ -91,6 +91,7 @@ [% IF latestEval %] [% INCLUDE renderDateTime timestamp = latestEval.timestamp %] + (took [% relativeDuration (latestEval.checkouttime + latestEval.evaltime) %]) [% ELSE %] never [% END %]