RightDevelop is a library of reusable, unit- and functional-tested Ruby code that RightScale has found broadly useful.
Maintained by the RightScale Teal Team
What Does It Do?
Continuous Integration
Jenkins groks JUnit XML test results very well, and has lots of hidden features associated with them. Tests are tests, so we’ve written an RSpec formatter that Jenkins will feel right at home with!
To use our CI harness, just add the following to your Rakefile (or into lib/tasks/ci.rake):
require 'right_develop'
RightDevelop::CI::RakeTask.new
Customizing your CI Harness
You can override various aspects of the CI harness’ behavior by passing a block to the constructor which tweaks various instance variables of the resulting Rake task:
RightDevelop::CI::RakeTask.new do |task|
task.ci_namespace = :my_happy_ci
task.rspec_pattern = "spec/important/**/*_spec.rb" # only run the important specs for CI
task.output_path = "ci_results" # use ci_results as the base dir for all output files
task.rspec_output = "happy_specs.xml" # write to ci_results/rspec/happy_specs.xml
end
Keeping the CI Harness Out of Production
We recommend that you don’t install RightDevelop – or other test-only gems such as rspec – when you deploy your code to production. This improves the startup time and performance of your app, and prevents instability due to potential bugs in test code.
To prevent RightDevelop from shipping to production, simply put it in the “development” group of your Gemfile:
group :development do
gem 'right_develop'
end
And ensure that you deploy your code using Bundler’s –without flag:
bundle install --deployment --without development
And finally, modify your Rakefile so you can tolerate the absence of the RightDevelop rake classes. For this, you can use RightSupport’s Kernel#require_succeeds? extension to conditionally instantiate the Rake tasks:
require 'right_support'
if require_succeeds?('right_develop')
RightDevelop::CI::RakeTask.new
end