Manage your CIJoes
Ruby
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
lib
spec
templates
.gitignore
Gemfile
Gemfile.lock
LICENSE
README.rdoc
Rakefile
VERSION
duke.gemspec

README.rdoc

duke

Duke helps you manage multiple CIJoe instances. It comes with a command-line interface and a web interface.

Installation & Setup using RVM

Here is a way you could setup duke on your CI server using RVM.

Use my version of cijoe because it works in 1.9 and works with duke.

git clone git@github.com:gotascii/cijoe.git
gem build cijoe.gemspec

Install cijoe into the global gemset so it is available in all project gemsets.

rvm gemset use global
gem install cijoe-0.5.0.gem

Create a duke gemset and install duke.

rvm gemset create duke
rvm gemset use duke
gem install duke

Create a new duke installation.

duke new .

Inside the duke directory use the command-line interface to add a new repository.

duke add git@github.com:gotascii/duke.git

Duke will clone the repo and configure it with some defaults.

Configuration

Default Configuration

host: localhost

Used to generate links to cijoes and the main duke url.

port: nil

Used to generate the main duke url.

runner: rake

When duke checks out a new repo it will configure it to build using this command.

pid_dir: tmp/pids

The relative directory duke will use to store cijoe daemon pid files.

log_dir: log

The relative directory duke will use to store cijoe log files.

campfire: {}

Options in the campfire hash are used to configure a new repo.

Custom Configuration

A duke.yml in the config directory will override the defaults.

Per-Project Runner

The duke command-line utility allows you to set the runner for a particular project.

duke runner repo_dir "rake spec"

Command-Line Usage

duke COMMAND [ARGS]

Commands

new [DIR]

Installs duke into DIR. Creates basic directory structure required for duke to do its thing.

add REPO_URL

Clones the repo at REPO_URL into the duke directory and configures it to run cijoe.

start REPO_DIR PORT

Starts a cijoe server set to build the repo in REPO_DIR on port PORT.

stop REPO_DIR

Stops the cijoe server running for REPO_DIR.

runner REPO_DIR CMD

Configures REPO_DIR to use CMD for cijoe builds.

build REPO_DIR

Tell cijoe to build the project in REPO_DIR

list

Lists all of the repo_dirs and their cijoe server and build statuses.

Website Interface

Duke provides a way to add, start, and stop your cijoes. It also provides a nice list of all your cijoes and their current build status. It looks like the following screenshot.

The duke installation directory contains a config.ru and the easiest way to get rolling is by using passenger standalone. Just start up passenger inside the duke directory.

passenger start

Note on Patches/Pull Requests

  • Fork the project.

  • Make your feature addition or bug fix.

  • Add tests for it. This is important so I don't break it in a future version unintentionally.

  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)

  • Send me a pull request. Bonus points for topic branches.

Copyright

Copyright © 2010 Justin Marney. See LICENSE for details.