h1. continuous4r
h2.
What is it ?
continuous4r is a continuous integration tool for Ruby on Rails. With it, you can aggregate reports of the best analysis, quality, and tests tools for Ruby on Rails. By just launching one Rake task and customizing a XML file describing your project, continuous4r builds for you an entire website in a Maven-like form/design.
h2. Requirements
[sudo] gem install continuous4rh2. Release notes for 0.0.4 version
require 'continuous4r'h3. Initializing your project In order to initialize your project, you must create your continuous4r-project.xml file. Just type this command and the file will be created :
rake continuous4r:initHere is the content of this file, you can customize it to suite your needs :
h3. Building your project When your project file is suitable, type :FIXME project description FIXME project URL FIXME Logo URL FIXME your company name here FIXME your company website URL here FIXME your company logo URL here [Trac|Bugzilla|Mantis|etc...] BUGTRACKER_URL BUGTRACKER_URL_ACCOUNT_CREATION BUGTRACKER_URL_SEARCH_TICKETS BUGTRACKER_URL_TICKETS_LIST BUGTRACKER_URL_TICKET_ADD
rake continuous4r:buildWhen the build is finished, you can find your site in the RAILS_ROOT/tmp/continuous4r directory. h2. Features h3. Proxy configuration If you are behind a HTTP proxy within your company, you can configure it with a simple YAML file. Create a file named proxy.yml within your USER_HOME/.continuous4r directory, with the following content :
proxy: server: my.proxy.server port: my_port login: my_login password: my_passwordWhen you will run the build task, if there is a need for continuous4r to find something on the internet (via Rubygems), it will automatically use this configuration. h3. CruiseControl.rb integration If you heard about Continuous Integration, and are a fan of CruiseControl.rb, just customize your project to build the 'continuous4r:build' Rake task, and a 'continuous4r' artifact will appear on your build page. h3. Running tests By default the behaviour of continuous4r is to ignore the fact that there are failures in your tests (because the failures are noticed within the tests report). If you want continuous4r to stop on tests failures, then you must set the "ignore-tests-failures" flag to false in your project file. h3. Tasks continuous4r built-in tasks are the core of the gem. They produce reports with some of the best code-related tools for Ruby on Rails. These tasks are described below : h4. dcov Dcov task produces a report related to the coverage of your Ruby documentation (rdoc). If there is a class, a module or a method which is not documented, this task finds it and reports it. Screenshot : h4. rcov Rcov is a tool which produces a report for the coverage of your Ruby code against you tests. Screenshot : h4. rdoc Produces your project documentation. h4. stats Produces what you get if you run 'rake stats', but in HTML format. h4. changelog Produces a HTML report of your code changes in your favorite source content manager. Git and Subversion are supported. Screenshot : h4. flog Flog is a tool which measures the complexity of your Ruby code. Screenshot : h4. xdoclet A task which transforms your Ruby files in HTML format with syntax highlighting support. This task is used via links in other tasks (look flog screenshot for example). Screenshot : h4. flay Flay task finds duplicates in your Ruby code. Screenshot : h4. reek Reek is code smell detector for Ruby. If there is something bad in your code, it tells you. Screenshot : h4. roodi Roodi parses your Ruby code and warns you about design issues. Screenshot : h4. saikuro Saikuro analyzes the cyclomatic complexity of your Ruby code. Screenshot : h4. tests Task to run your tests and make a report with details (type, success/failure, result). Screenshot : h4. zentest ZenTest is a test tool. It runs a Ruby file against its test file, and generates a convention-delta report if your tests are not good enough. Screenshot : h2. Help needed This version 0.0.2 has many improvements, but is still a pre-RC version of continuous4r. I'm planning on orienting the gem to collect some statistics about the tasks, and make a global quality report with graphs. I'm searching for volunteers to test, or work on this tool. With a more substancial amount of quality and work, this tool will be really great. h2. License This code is free to use under the terms of the MIT license. h2. Contact Comments are welcome. Send an email to "Vincent Dubois":mailto:duboisv@hotmail.com, or post a message on the forum.