Project

duke

0.0
No commit activity in last 3 years
No release in over 3 years
Allows you to easily manage multiple CIJoes.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Development

>= 2.0.1

Runtime

 Project Readme

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 © 2010 Justin Marney. See LICENSE for details.