openMSX-Builder


openMSX-Builder is used for building the latest SVN checkouts of openMSX and openMSX-Debugger from their sourceforge repository.
It also supports publishing the created builds to an external location via scp. The original setup publishes to FiXato's openMSX page.
Successfully published builds can also be announced via Twitter. @openmsx_builder is the official Twitter home for openMSX-Builder.

Installation Guidelines


From Git:

git clone git://github.com/FiXato/openMSX-builder.git && cd openMSX-builder && rake install

From RubyForge/GemCutter:

gem install openMSX-builder

Usage


The first 2 times you run build_openmsx it will probably say you will need to set up the configuration files for the builder and the twitter module. Setting up the SMTP and builder configuration settings should be pretty straightforward. Set up of the oauth info has to be done manually at the moment, for more information on that read about the amazing twitter_oauth gem, Twitter's oAuth Applications and Twitter's Authentication Wiki

Commandline Arguments

Currently build_openmsx supports the following command-line arguments:

  • --publish => Publish the created build
  • --publish-current => Only publish the current build and exit
  • --publish-all => Only publish all previously created builds and exit
  • --tweet => Send a tweet via configured authorised Twitter account after successfully having published a build
  • --dont-update => Don't update the SVN repository
  • --report-build-failure => If an error occurs during build, report failure via e-mail
  • --version => Return the current VERSION of openMSX-Builder
  • --profiles => Print a list of (hardcoded) profiles to build
  • --profiles name1,name2 => Build just builds with profile name 'name1' and 'name2'

By default only fatal errors will be output via STDOUT. However, the following command-line arguments are available to set the verbosity:

  • --log-errors => Fatal and non-fatal errors.
  • --warn => Logs warnings besides the (non-)fatal errors.
  • --verbose => Besides the --warn output, also outputs info.
  • --debug => Most verbose form. --verbose plus debug info.

Examples

Simplest way to run it would usually be: build_openmsx --verbose --publish --tweet --report-build-failure

Or by adding a cronjob for: 0 3 * * * build_openmsx --publish --tweet --report-build-failure --log-errors to have it run daily at 3 at night. (Remember to add either source ~/.profile or the right PATH to your cron.)

ToDo


Current list of tasks is:

  • Fix failed-build-mailer for Ruby 1.9 "mail-2.1.3/lib/mail/mail.rb:106:in `instance_eval': block not supplied (ArgumentError)"
  • Integrate with CIA.vc / Ruby-Rbot
  • Add tests
  • Create a simple Sinatra App for openMSX.FiXato.net
  • Allow for automatic setup of the oAuth tokens.
  • Add documentation on the YAML configuration files.
  • Add --configure argument that will trigger set up of the configuration files.
  • See if VERSION can be integrated into OpenmsxBuilder instead of just being parsed in the executable.
  • Make sure all shell commands are output as Debug level logs.
  • Integrate CBIOS builds.
  • Use the profile names from the YAML config for --profiles instead of hardcoded defaults

Notes on Patches/Pull Requests


  1. Fork the project.
  2. Make your feature addition or bug fix.
  3. Add tests for it (even though I don't have tests myself at the moment). This is important so I don't break it in a future version unintentionally.
  4. Commit, but do not mess with Rakefile, version, history, or README. Want to have your own version? Bump version in a separate commit! That way I can ignore that commit when I pull.
  5. Send me a pull request. Bonus points for topic branches.

Copyright (c) 2010-2012 Filip H.F. "FiXato" Slagter. See LICENSE for details.