Buildhawk¶ ↑
Historical information about your build, on a webpage! Currently only graphs time taken, as stored in git notes.
See how it looks: rhnh.net/2010/09/18/build-time-graph-with-buildhawk
Status¶ ↑
Pretty raw: hackish script, no error checking, no test suite. I am adding to it as I use on one of my projects. Only checked on ruby 1.9.2. Depends on an unreleased experimental branch of TufteGraph (github.com/xaviershay/tufte-graph/tree/line).
Usage¶ ↑
gem install buildhawk buildhawk --title "My App Name" # In your project directory, output HTML to stdout buildhawk | browser # Using http://gist.github.com/318247
You need to store the build time in git notes. This should be a single float: the build time in seconds. The following rake task should work for a standard ruby project with rvm. See rhnh.net/2010/09/06/storing-build-time-in-git-notes-with-zsh for more explanation. Note that ‘time` does not appear to output consistent enough spacing to be used reliably with cut, you may need to tweak the `cut -f 11 -d` command to pull out the right field.
namespace :build do desc "Run specs and store the time taken in a git note on HEAD" task :time do # ruby/rake are not aliased by rvm in the new zsh environment, so # have to explicitly call it using the rvm command stored in .rvmrc: # rvm 1.9.2@myapp rake # # "2> >( )" construct redirects STDERR (where @time@ prints to) to the # bracketed commands. ZSH allows us to redirect it twice, once to git, # once to cat (back to STDOUT). formatter = "tail -n 1 | cut -f 11 -d ' ' - " exec((%{zsh -c "(time `cat .rvmrc` rake) } + %{2> >(#{formatter} | git notes --ref=buildtime add -F - -f ) } + %{2> >(#{formatter} | cat)"})) end end