Title: [40701] trunk/hudson/plugins/view-job-filters/src/main: adding build duration filter
- Revision
- 40701
- Author
- jacob_robertson
- Date
- 2012-09-07 15:08:51 -0400 (Fri, 07 Sep 2012)
Log Message
adding build duration filter
Added Paths
Diff
Added: trunk/hudson/plugins/view-job-filters/src/main/java/hudson/views/BuildDurationFilter.java (0 => 40701)
--- trunk/hudson/plugins/view-job-filters/src/main/java/hudson/views/BuildDurationFilter.java (rev 0)
+++ trunk/hudson/plugins/view-job-filters/src/main/java/hudson/views/BuildDurationFilter.java 2012-09-07 19:08:51 UTC (rev 40701)
@@ -0,0 +1,58 @@
+package hudson.views;
+
+import java.text.DecimalFormat;
+import java.text.NumberFormat;
+
+import org.kohsuke.stapler.DataBoundConstructor;
+
+import hudson.Extension;
+import hudson.model.Descriptor;
+import hudson.model.Run;
+
+public class BuildDurationFilter extends AbstractBuildTrendFilter {
+
+ private boolean lessThan;
+ private float buildDurationMinutes;
+
+ @DataBoundConstructor
+ public BuildDurationFilter(
+ float buildDurationMinutes, boolean lessThan,
+ String buildCountTypeString, float amount, String amountTypeString,
+ String includeExcludeTypeString) {
+ super(buildCountTypeString, amount, amountTypeString, includeExcludeTypeString);
+ this.lessThan = lessThan;
+ this.buildDurationMinutes = buildDurationMinutes;
+ }
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public boolean matchesRun(Run run) {
+ long buildDurationMs = (long) (buildDurationMinutes * 60f * 1000f);
+ if (lessThan) {
+ return run.getDuration() < buildDurationMs;
+ } else {
+ return run.getDuration() > buildDurationMs;
+ }
+ }
+
+ public boolean isLessThan() {
+ return lessThan;
+ }
+ public String getBuildDurationMinutes() {
+ DecimalFormat format = new DecimalFormat("##########.##########");
+ return format.format(buildDurationMinutes);
+ }
+
+ @Extension
+ public static class DescriptorImpl extends Descriptor<ViewJobFilter> {
+ @Override
+ public String getDisplayName() {
+ return "Build Duration Filter";
+ }
+ @Override
+ public String getHelpFile() {
+ return "/plugin/view-job-filters/build-duration-help.html";
+ }
+ }
+
+}
Property changes on: trunk/hudson/plugins/view-job-filters/src/main/java/hudson/views/BuildDurationFilter.java
___________________________________________________________________
Added: svn:mime-type
Added: trunk/hudson/plugins/view-job-filters/src/main/resources/hudson/views/BuildDurationFilter/config.jelly (0 => 40701)
--- trunk/hudson/plugins/view-job-filters/src/main/resources/hudson/views/BuildDurationFilter/config.jelly (rev 0)
+++ trunk/hudson/plugins/view-job-filters/src/main/resources/hudson/views/BuildDurationFilter/config.jelly 2012-09-07 19:08:51 UTC (rev 40701)
@@ -0,0 +1,21 @@
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define"
+ xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form"
+ xmlns:i="jelly:fmt" xmlns:p="/lib/hudson/project">
+ <f:entry title="${%Build duration type:}">
+ <select name="buildCountTypeString" class="buildCountType">
+ <f:option value="Latest" selected="${instance.buildCountTypeString == 'Latest'}">${%Latest build duration was}</f:option>
+ <f:option value="AtLeastOne" selected="${instance.buildCountTypeString == 'AtLeastOne'}">${%At least one build duration was}</f:option>
+ <f:option value="All" selected="${instance.buildCountTypeString == 'All'}">${%All build durations were}</f:option>
+ </select>
+ <st:nbsp />
+ <select name="lessThan">
+ <f:option value="true" selected="${instance.lessThan == true}">${%Less than}</f:option>
+ <f:option value="false" selected="${instance.lessThan == false}">${%More than}</f:option>
+ </select>
+ <st:nbsp />
+ <input type="text" name="buildDurationMinutes" value="${instance.buildDurationMinutes}" size="10" maxlength="10" />
+ <st:nbsp />
+ ${%minutes}
+ </f:entry>
+ <st:include page="config.jelly" class="hudson.views.AbstractBuildTrendFilter" optional="false"/>
+</j:jelly>
\ No newline at end of file
Added: trunk/hudson/plugins/view-job-filters/src/main/webapp/build-duration-help.html (0 => 40701)
--- trunk/hudson/plugins/view-job-filters/src/main/webapp/build-duration-help.html (rev 0)
+++ trunk/hudson/plugins/view-job-filters/src/main/webapp/build-duration-help.html 2012-09-07 19:08:51 UTC (rev 40701)
@@ -0,0 +1,9 @@
+<div>
+Put jobs into views based on build durations. For example:
+<br/>
+<ul>
+ <li>All jobs where the last build was more than an hour</li>
+ <li>All jobs where at least one build was more than 10 hours</li>
+ <li>All jobs where every build in the last week was less than a minute</li>
+</ul>
+</div>
\ No newline at end of file
Property changes on: trunk/hudson/plugins/view-job-filters/src/main/webapp/build-duration-help.html
___________________________________________________________________
Added: svn:mime-type