Project

roxanne

0.0
No commit activity in last 3 years
No release in over 3 years
Roxanne: publish your CI status to your device of choice
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

Runtime

~> 0.6.0
>= 0
~> 0.1.1
~> 1.6.8
 Project Readme

Roxanne

Roxanne allows you to aggregate the status of Continuous Integration jobs or other sources and to publish the results on a BigVisibleThing™ (traffic light, lava lamp, whatever).

Build Status

Installation

Add this line to your application's Gemfile:

gem 'roxanne'

And then execute:

$ bundle

Or install it yourself as:

$ gem install roxanne

Usage

Configuration

Configuration is stored in a YAML file. By default, Roxanne will search for a config/config.yml file.

Activation

Roxanne is configured by default to only be active between 9am and 20pm during working days. You may use the activation section to change the default behavior:

roxanne:
  activation:
    # Active from monday to wednesday
    days: !ruby/range 1..3
    # 07:00 to 14:59
    timerange: !ruby/range 7...15

Consumers

Use the consumers section to specify consumers configuration:

roxanne:
 consumers:
   jenkins:
     class: "Roxanne::Jenkins::Consumer"
     host: "192.168.20.30"
     port: 8080
     use_ssl: false
     path: "/api/json"

Publisher

Use the publisher section to specify consumers configuration:

roxanne:
 publisher:
   class: "Roxanne::GPIO::Publisher"
   green_pin: 25
   orange_pin: 17
   red_pin: 27

Start the daemon

Start the daemon using the start command:

bundle exec roxanne start

If you want to specify a configuration file pass its path as the first argument:

bundle exec roxanne start /etc/roxanne/config.yml

Other available commands are obviously stop, status and restart.

Available Consumers

Jenkins

Use the Roxanne::Jenkins::Consumer class. Available options:

  • host: the Jenkins host name or IP address
  • port: the TCP port the Jenkins service can be reached on
  • path: the relative path to the JSON API (/jenkins/api/json)
  • username: the username to use for HTTP Basic Auth
  • password: the password to use for HTTP Basic Auth
  • disable_certificate_verification : set to true if you use a self-signed SSL certificate

Travis CI

Use the Roxanne::Travis::Consumer class. Available options:

  • organization_or_user: the Github organization or user to pull build states from

Available Publishers

GPIO

Use the Roxanne::GPIO::Consumer class. Available options:

  • green_pin: the GPIO pin to turn on when status changes to green
  • orange_pin: the GPIO pin to turn on when status changes to orange
  • red_pin: the GPIO pin to turn on when status changes to red

Statuses

Every 5 seconds, Roxanne will loop to check the status of the consumers:

  • if any of the consumers returns red the publisher receive red
  • if all of the consumers return green the publisher receive green
  • if the previous state was not green and one of the consumer returns orange the publisher receive orange

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request