CARVIEW |
pivotal / pulse
- Source
- Commits
- Network (7)
- Issues (1)
- Downloads (0)
- Wiki (1)
- Graphs
-
Branch:
master
click here to add a description
click here to add a homepage
name | age | message | |
---|---|---|---|
![]() |
.gitignore | Thu Mar 25 14:01:38 -0700 2010 | ignore .bundle [Chad Woolley] |
![]() |
.gitmodules | Fri Sep 04 15:25:49 -0700 2009 | Initial checkin [pivotal] |
![]() |
.rvmrc | Wed Mar 24 22:21:02 -0700 2010 | set .rvmrc to 'rvm ruby-1.8.7%pulse' [Chad Woolley] |
![]() |
Gemfile | Thu Mar 25 14:04:22 -0700 2010 | add fastthread as an explicit dependency for bu... [Chad Woolley] |
![]() |
Gemfile.lock | Thu Mar 25 14:04:22 -0700 2010 | add fastthread as an explicit dependency for bu... [Chad Woolley] |
![]() |
README.md | Sun Mar 21 15:44:28 -0700 2010 | Updated readme to include support for Hudson. ... [joemoore] |
![]() |
Rakefile | Fri Sep 04 18:44:31 -0700 2009 | initial checkin [pivotal] |
![]() |
VERSION | Sat Dec 05 17:36:13 -0800 2009 | Adding version of 0.1 before open-sourcing. [Edward Hieatt] |
![]() |
app/ | Mon Mar 22 22:40:41 -0700 2010 | added currently-building status for Hudson base... [joemoore] |
![]() |
config/ | Fri Mar 26 10:20:28 -0700 2010 | ensure that bundled gems are always installed. ... [Chad Woolley] |
![]() |
cruise_config.rb | Mon Feb 01 11:37:21 -0800 2010 | Copying site keys example in cruise config [Edward Hieatt] |
![]() |
db/ | Fri Mar 26 10:08:52 -0700 2010 | why are we checking this in? [Chad Woolley] |
![]() |
doc/ | Fri Sep 04 15:25:49 -0700 2009 | Initial checkin [pivotal] |
![]() |
lib/ | Fri Mar 26 10:19:27 -0700 2010 | remove this, it should be in preinitializer ins... [Chad Woolley] |
![]() |
log/ | Sat Dec 05 17:52:21 -0800 2009 | Removing some Pivotal-specific stuff [Edward Hieatt] |
![]() |
public/ | Mon Feb 01 16:53:21 -0800 2010 | Work on new users [Edward Hieatt] |
![]() |
script/ | Fri Sep 04 15:25:49 -0700 2009 | Initial checkin [pivotal] |
![]() |
spec/ | Mon Mar 22 22:40:41 -0700 2010 | added currently-building status for Hudson base... [joemoore] |
![]() |
test/ | Mon Mar 22 22:40:41 -0700 2010 | added currently-building status for Hudson base... [joemoore] |
![]() |
vendor/ | Thu Mar 25 13:32:17 -0700 2010 | switch bundler to use packaged gems, remove act... [Chad Woolley] |
Description
Pulse is a CI display aggregator. It displays the status of multiple Continuous Integration builds on a single web page. The intent is that you display the page on a big screen monitor or TV so that the status of all your projects' builds are highly visible/glanceable (a "Big Visible Chart"). Pulse currently supports Cruise Control and Hudson builds, but the plan is to add support others (such as Integrity).
We use Pulse internally at Pivotal Labs to display the status of the builds for all our client projects. We also have an instance of Pulse running at ci.pivotallabs.com that we use for displaying the status of the builds of various open source projects - both of projects Pivotal Labs maintains (such as Refraction) and of non-Pivotal projects (such as Rails).
Installation
Get the code
Pulse is a Rails application. To get the code, execute the following:
git clone git://github.com/pivotal/pulse.git pivotal_pulse
cd pivotal_pulse
git submodule init
git submodule update
Install gem dependencies
If you don't have geminstaller installed, then execute:
sudo gem install geminstaller
Then execute:
sudo geminstaller
Set up the database
You'll need a database (MySQL works). Create it with whatever name you want. Copy config/database.yml.example
to
database.yml
and edit the production environment configuration so it's right for your database. Then execute:
RAILS_ENV=production rake db:migrate
Set up the site keys
Copy config/site_keys.rb.example
to config/site_keys.rb
and change REST_AUTH_SITE_KEY
to something secret.
Set up cron
Add a cron job for RAILS_ENV=production rake pulse:fetch_statuses > fetch_statuses.log 2>&1
at whatever frequency you
like. This is what goes out and hits the individual builds. We find that if you do this too frequently it
can swamp the builds. On the other hand, you don't want Pulse displaying stale information. At Pivotal we set it up to
run every 3 minutes.
Start the application
Execute:
nohup RAILS_ENV=production script/server & > pulse.log 2> &1
Configuration
Each build that you want Pulse to display is called a "project" in Pulse. You need to login to set up projects.
Create a user
Pulse uses the Restful Authentication plugin for user security. Your first user must be created at the command line.
RAILS_ENV=production script/console
User.create!(:login => 'john', :name => 'John Doe', :email => 'jdoe@example.com', :password => 'password', :password_confirmation => 'password')
After that, you can login to Pulse and use the "New User" link to create new users.
Log in
Open a browser on Pulse. Login by clicking on "Login" in the upper-right corner.
Add projects
Click on "Projects" in the upper-right corner. Click on "New Project" and enter the details for a build you want to display on Pulse. The "Name", "Project Type", and "Feed URL" are required. If your Feed URL is https://myhost.com:3333/projects/MyProject, then your RSS URL is probably https://myhost.com:3333/projects/MyProject.rss.
Optionally, if your Build system is behind Basic Authentication or Digest Authentication, you can enter the credentials.
If you want to temporarily hide your build on Pulse, you can uncheck the "Enable" checkbox.
Pulse's main display page is at /
. You can always get back there by clicking on the "Pivotal Labs" logo at the upper
left.
Display
Just open a browser on /
. The page will refresh every 30 seconds. When it refreshes, it shows whatever status was last
fetched by the cron job. That is, a refresh doesn't cause the individual Builds to be polled.
Pulse shows a big green check or a big red X to indicate a build's status. In addition, it shows the history of a project's builds: the previous 9 are displayed underneath as green or red dots. The larger the dot, the more recent the build.
Pulse looks good on an iPhone, by the way :)
Notifications
Pulse can inform you of builds that have been red for more than 24 hours. Set up cron to daily execute
RAILS_ENV=production rake pulse:red_over_one_day_notification > red_over_one_day_notification.log 2>&1
Tags
You can enter tags for a project (separated by commas) on the project edit page. You can then have Pulse display only projects that match a set of tags by going to /?tags=tag1,tag2
CI
CI for Pulse is here, and it's aggregated at ci.pivotallabs.com (that's an instance of Pulse, of course).
Pivotal Tracker
The public Tracker project for Pulse is here.