Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

metrics and CI are for A students.

tree: c9a5f075ce

Fetching latest commit…

Cannot retrieve the latest commit at this time

README.textile

report_card

Automatic building and reporting to campfire of metrics with metric_fu through integrity.

Features

  • Generates metric_fu sites for each project and ties them together on one page
  • Notifies campfire of metric stats given that they have changed since the last run

Requirements

  • integrity v0.1.10
  • metric_fu
  • tinder
  • your favorite webserver

Usage

Run: rake grade

Note: It’s probably best to do this on a cron job.

If you’re running private projects, make sure to configure your webserver to block
others from looking at your results. If you’re using Apache to host your report_card
site, here’s what your VirtualHost could look like:

<VirtualHost *:80>
  ServerName  metrics.thoughtbot.com
  DocumentRoot /home/ci/report_card/_site

  <DirectoryMatch /home\/ci\/report_card\/_site\/(archive|private|scores)>
    AuthName "Metrics"
    AuthUserFile /home/ci/.htpasswd
    AuthGroupFile /dev/null
    AuthType basic
    require valid-user
  </DirectoryMatch>
</VirtualHost>

Setup

Have a config.yml file in your report_card directory with the following info:

# This is the path to integrity's config.yml file.
integrity_config: /home/ci/integrity/config.yml

# Where you want the site to be placed that metric_fu creates
site: /home/ci/report_card/_site

# A regular expression for project names you wish to ignore
# You need to surround this with quotes since YAML is picky
ignore: '[^shoulda]|1\.9'

# The location of your site, for campfire reporting
url: http://metrics.thoughtbot.com

# Set to true if you would like to skip notifying campfire when metrics have changed
skip_notification: false

Testing

Run the test suite with rake.

There’s a cucumber integration test that is run with cucumber. This isn’t exactly fast since it:

  1. Sets up integrity
  2. Adds projects into integrity
  3. Clones them from github
  4. Builds the project’s tests
  5. Runs metric_fu on the project’s tests
  6. Generates the report_card site.

However, it should all pass and work. If not, open up an issue!

Thanks

To thoughtbot for supporting this project.

Something went wrong with that request. Please try again.