Goldberg: Lightweight, multi-language continuous integration server

Wynn Netherland Wynn Netherland

We’ve covered continuous integration projects such as
Jenkins
and
Travis
before. Now Goldberg, which has just turned 1.0, jumps into the
ring with a
CruiseControl.rb-compatible
offering.

Goldberg supports RVM and Bundler for Ruby projects, but it
can build most any software project, simply configure the command in
the project configuration. Goldberg also supports a number of callbacks
and notifications, to perform work when builds are complete, even when
projects go green.

Project.configure do |config|

  # project configuration
  config.frequency = 20
  config.ruby = '1.9.2' # Your server needs to have rvm installed for this setting to be considered
  config.environment_variables = {"FOO" => "bar"}
  config.after_build Proc.new { |build, project| `touch ~/Desktop/actually_built`}
  config.timeout = 10.minutes
  config.command = 'make' #to be used if you're using anything other than rake

  # callbacks and notifications

  # sending mail
  config.on_build_completion do |build,notification,previous_build_status|
    notification.from('from@example.com').to('to@example.com').with_subject("build for #{build.project.name} #{build.status}").send
  end

  # code to deploy on staging
  config.on_build_success do |build,notification|

  end

  # post to IRC channel & send mail
  config.on_build_failure do |build,notification|

  end

  # post to IRC channel & deploy on staging
  config.on_red_to_green do |build,notification|

  end

end

For advanced usage and information on how to contribute, be sure and
check out the README.

[Source on GitHub] [Discuss]

0:00 / 0:00