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
- Fork the project.
- Make your feature addition or bug fix.
- 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.
- 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.
- Send me a pull request. Bonus points for topic branches.
Copyright
Copyright (c) 2010-2012 Filip H.F. "FiXato" Slagter. See LICENSE for details.