bitbar-concourse
Presents the status of a Concourse pipeline in bitbar.
This started out as fork of Checkman's concourse.check, but has evolved since.
Usage
- Install bitbar (
brew install bitbar
) - Install this gem
- Add the following script as
~/.bitbar/concourse.1m.sh
and make it executable:
#!/bin/bash
# Change this URL to point to your own Concourse instance
# but the public one should be ok as a demo
export CONCOURSE_URI=http://concourse.ci/
# username and password are optional
export CONCOURSE_USER=user
export CONCOURSE_PASSWORD=password
# invoke the plugin
bitbar-concourse
I do not install bitbar-concourse as system gem, but I use chruby. For some reason bitbar does not seem to run a login shell, so I had to load chruby
manually in ~/.bitbar/concourse.1m.sh
(just before the last line):
export PATH=/usr/local/bin:$PATH
source "$(brew --prefix)/share/chruby/chruby.sh"
chruby 2.5.1
- Check the bitbar icon in the system tray for an updated status of your pipeline:
Example:
Installation
$ gem install -concourse
Development
- Use
fswatch
to run specs whenever code or tests change. Install it withbrew install fswatch
if not available.
$ fswatch --one-per-batch spec lib | xargs -n1 -I{} rspec
- Since the bitbar protocol is text-based, the bitbar-concourse gem can be tested in the terminal. Just execute the script in
~/.bitbar/
in a terminal window.
Tests
Running the integration tests requires a real Concourse server. By default, ci.concourse-ci.org is used. If you want to test with your own, which is required for the authentication tests, supply the environment variables listed in .envrc.sample
.
Misc
The propeller logo is in the public domain.
TODO
- Use Excon in order to get easy tracing
- Order latest builds in presenter first by status and then by last-run date so that the broken ones appear at the top
Use TerminalNotifier when a build is failing:
TerminalNotifier.notify('Hello World', :open => 'http://twitter.com/alloy')
Keep state about each job and notify only on a change (red => green etc.)
Ignore certain tasks, e.g. release lock