Buildbot data in R

(2012-10-24 23:35:00)

It is work in pgoress.
For comments and info please use comment button or contant andyhelp@gmail.com

Getting the data

Load the library

source("rbuildbot.R")
## Loading required package: bitops

Get all builders

builders <- bb_getBuilders()
builders <- builders[1:4]  #reduce number of builders
builders
## [1] "coverage"    "db-mysql"    "db-postgres" "deb-master"

Fetching data

b <- bb_getBuilds(builder = builders, buildNr = -1:-15)
builds = b[[1]]
changes = b[[2]]
head(builds)
##   builderName number        slave           result time_start  time_end
## 1    coverage   1325 buildbot.net build successful  1.351e+09 1.351e+09
## 2    coverage   1324 buildbot.net build successful  1.351e+09 1.351e+09
## 3    coverage   1323 buildbot.net build successful  1.351e+09 1.351e+09
## 4    coverage   1322 buildbot.net build successful  1.350e+09 1.350e+09
## 5    coverage   1321 buildbot.net build successful  1.350e+09 1.350e+09
## 6    coverage   1320 buildbot.net build successful  1.350e+09 1.350e+09
head(changes)
##   change_number change_time builder_name build_number
## 1          5944   1.351e+09     coverage         1325
## 2          5942   1.351e+09     coverage         1324
## 3          5943   1.351e+09     coverage         1324
## 4          5936   1.351e+09     coverage         1323
## 5          5937   1.351e+09     coverage         1323
## 6          5907   1.348e+09     coverage         1322

Build time plots

library(lattice)
boxplot((builds$time_end - builds$time_start)/60 ~ builds$builderName, data = builds, 
    main = "Projects build time", ylab = "Build time [min]")

plot of chunk unnamed-chunk-4

histogram(~(builds$time_end - builds$time_start)/60 | builds$builderName, data = builds, 
    main = "Projects build time", xlab = "Build time [min]")

plot of chunk unnamed-chunk-4

Plots for each project

for (builder in builders) {
    s <- subset(builds, builds$builderName == builder)  #data for specific builder
    boxplot((s$time_end - s$time_start)/60 ~ s$slave, data = s, las = 2, main = substitute(paste(builder, 
        " build time", sep = ""), list(builder = builder)), ylab = "build time [min]")
    grid(nx = NULL, ny = NULL)
    histogram(~(s$time_end - s$time_start)/60 | s$slave * s$builderName, data = s, 
        ylab = "Build time [min]")
}

plot of chunk unnamed-chunk-5 plot of chunk unnamed-chunk-5 plot of chunk unnamed-chunk-5 plot of chunk unnamed-chunk-5

Changeset waiting time plots

Time between changeset was pushed to buildbot and starting the build with that changeset included.

m <- merge(x = builds, y = changes, by.x = c("number", "builderName"), by.y = c("build_number", 
    "builder_name"))
head(m)
##   number builderName        slave           result time_start  time_end
## 1   1311    coverage buildbot.net build successful  1.349e+09 1.349e+09
## 2   1311    coverage buildbot.net build successful  1.349e+09 1.349e+09
## 3   1311    coverage buildbot.net build successful  1.349e+09 1.349e+09
## 4   1311    coverage buildbot.net build successful  1.349e+09 1.349e+09
## 5   1311    coverage buildbot.net build successful  1.349e+09 1.349e+09
## 6   1311    coverage buildbot.net build successful  1.349e+09 1.349e+09
##   change_number change_time
## 1          5810   1.349e+09
## 2          5811   1.349e+09
## 3          5812   1.349e+09
## 4          5813   1.349e+09
## 5          5814   1.349e+09
## 6          5815   1.349e+09
summary((m$time_start - m$change_time)/60)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##      -3       9     263    5200    4040   33000
hist((m$time_start - m$change_time)/60, main = "Changet wait time", xlab = "wait time [min]")

plot of chunk unnamed-chunk-6


boxplot((m$time_start - m$change_time)/60 ~ m$builderName, data = m, las = 2, 
    main = "Changeset waiting time")

plot of chunk unnamed-chunk-6

Time between changeset was pushed to buildbot and build with that changeset included finishes.

hist((m$time_end - m$change_time)/60, main = "Changet result/build time", xlab = "wait time [min]")

plot of chunk unnamed-chunk-7


boxplot((m$time_end - m$change_time)/60 ~ m$builderName, data = m, las = 2, 
    main = "Changeset result/build time")

plot of chunk unnamed-chunk-7