= 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 in the web interface. 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. http://img.skitch.com/20101108-nj852sa18856hiykq5e9kas9m1.jpg 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 (c) 2010 Justin Marney. See LICENSE for details.