Using BuildBot for Drizzle has been a great way to help in the verification of the sometimes rapid code changes that are being committed.
Curious why the IRC notifier within BuildBot only joined and exited the #drizzle channel in IRC, some further investigation of the IRC Documentation lead to more information to share.
By default, the following configuration is not much help in any automated notification.
from buildbot.status import words c['status'].append(words.IRC(host="irc.freenode.net", nick="drizzle_buildbot", channels=["#drizzle"]))
However, within IRC you can query using several commands. My first trials.
rbradfor: drizzle_buildbot: list builders [3:10pm] drizzle_buildbot: Configured builders: centos5.64.1 centos5.64.1-mt debian4.32.1[offline] debian5.32.1 debian5.32.2 debian5.64.1 doxygen fedora8.32.1[offline] fedora8.64.1 gentoo8.32.1 gentoo8.64.1 osx105.32.1 osx105.32.1-mt osx105.64.1[offline] osx105.64.1-mt[offline] suse11.32.1[offline] ubuntu804.32.1[offline] ubuntu804.32.2[offline] ubuntu804.32.3[offline] ubuntu804.32.4 ubuntu804.32.4-mt ubuntu804.32.5 ubuntu804.32.6[offline] ubuntu804.32.7[offline] ubuntu804 [3:10pm] rbradfor: drizzle_buildbot: status all [3:10pm] drizzle_buildbot left the chat room. (Excess Flood) [3:11pm] drizzle_buildbot joined the chat room. [3:11pm] rbradfor: drizzle_buildbot: notify on [3:11pm] drizzle_buildbot: The following events are being notified: ['started', 'finished'] [3:13pm] drizzle_buildbot: build #484 of centos5.64.1 started including [] [3:18pm] drizzle_buildbot: build #484 of centos5.64.1 is complete: Success [build successful] Build details are at http://drizzlebuild.42sql.com/builders/centos5.64.1/builds/484 [3:25pm] rbradfor: drizzle_buildbot: notify off [3:25pm] drizzle_buildbot: The following events are being notified: [] [3:26pm] rbradfor: drizzle_buildbot: watch centos5.64.1 [3:26pm] drizzle_buildbot: there are no builds currently running [3:34pm] rbradfor: drizzle_buildbot: notify on failed [3:34pm] drizzle_buildbot: The following events are being notified: ['failed'] [4:09pm] rbradfor: drizzle_buildbot: help [4:09pm] drizzle_buildbot: Get help on what? (try 'help foo', or 'commands' for a command list) [4:09pm] rbradfor: drizzle_buildbot: help commands [4:09pm] drizzle_buildbot: Usage: commands - List available commands [4:09pm] rbradfor: drizzle_buildbot: commands [4:09pm] drizzle_buildbot: buildbot commands: commands, dance, destroy, excited, force, hello, help, join, last, leave, list, notify, source, status, stop, version, watch
The docs list the following commands.
To use the service, you address messages at the buildbot, either normally (botnickname: status) or with private messages (/msg botnickname status). The buildbot will respond in kind. Some of the commands currently available: list builders Emit a list of all configured builders status BUILDER Announce the status of a specific Builder: what it is doing right now. status all Announce the status of all Builders watch BUILDER If the given Builder is currently running, wait until the Build is finished and then announce the results. last BUILDER Return the results of the last build to run on the given Builder. join CHANNEL Join the given IRC channel leave CHANNEL Leave the given IRC channel notify on|off|list EVENT Report events relating to builds. If the command is issued as a private message, then the report will be sent back as a private message to the user who issued the command. Otherwise, the report will be sent to the channel. Available events to be notified are: started A build has started finished A build has finished success A build finished successfully failed A build failed exception A build generated and exception successToFailure The previous build was successful, but this one failed failureToSuccess The previous build failed, but this one was successful help COMMAND Describe a command. Use help commands to get a list of known commands. source Announce the URL of the Buildbot's home page. version Announce the version of this Buildbot. If the allowForce=True option was used, some addtional commands will be available: force build BUILDER REASON Tell the given Builder to start a build of the latest code. The user requesting the build and REASON are recorded in the Build status. The buildbot will announce the build's status when it finishes. stop build BUILDER REASON Terminate any running build in the given Builder. REASON will be added to the build status to explain why it was stopped. You might use this if you committed a bug, corrected it right away, and don't want to wait for the first build (which is destined to fail) to complete before starting the second (hopefully fixed) build.
I don’ want to flood the IRC channel with messages, so delving deeper into the documentation via the following commands gives me more tips.
$ cd buildbot-0.7.8 $ pydoc buildbot.status.words
By defining categories against the IRC notification, and assigning builders to a given category, in theory you will get notifications just for these builders. I didn’t seem to produce the desired results, so for now it needs to be manual interaction until I get additional time to investigate.
b00 = {'name': "centos5.64.1", 'slavename': "centos5_64", 'builddir': "build00", 'factory': f1, 'category': "irc" } ... from buildbot.status import words c['status'].append(words.IRC(host="irc.freenode.net", nick="drizzle_buildbot", channels=["#drizzle"], categories=["irc"]))