[Buildbot-devel] messageFormatter to grab logs from the waterfall page, and how to add on the waterfall page a link to a zip file on the slave.

Dan Kegel dank at kegel.com
Mon Feb 11 17:08:55 UTC 2013


On Sun, Feb 10, 2013 at 11:42 PM, shiny knight <theshinyknight at me.com> wrote:
> It sounds similar to what I want to do....All that I need is to tell the buildbot to show a link on a specific step, but so far I was not successful...that's why I was thinking that maybe there was a correct way to do so in the buildbot.
>
> After all I could always put a link to a regular html page with the links to download the library; but was nicer to have the link right in the step that build the library.

Right, that's what I do.

> What syntax did you used to put the link to the upload dir ?

Here it is again, with a little more (ugly) detail.  I save all the
build artifacts under a
subdirectory named for the builder and build number, like this:

class LinkedShellCommand(ShellCommand):
    """A shell command that adds a URL to the build resuilts."""
    def __init__(self,**kwargs):
         ShellCommand.__init__(self,**kwargs)

    def createSummary(self,log):
         # FIXME: make this configurable
         rooturl = "http://buildhost3/repobot"
         buildername = self.getProperty("buildername")
         buildnumber = self.getProperty("buildnumber")
         artifact_url = "%s/builds/%s/%d/" % (rooturl, buildername, buildnumber)
         self.addURL("artifacts", artifact_url)

...
    factory.addStep(ShellCommand(command=['/bin/sh', '-c',
WithProperties('echo %s/%s | tee ../bs-artifactsubdir', 'buildername',
'buildnumber')], description="Save build ID"))
...
    factory.addStep(LinkedShellCommand(command=["upload.sh"])

where upload.sh is a script that does something like
    root_of_all_evil=/home/buildbot/var/repobot
    bs_upload_user=buildbot
    bs_upload_host=buildshot3
    bs_artifactsubdir=`cat ../bs-artifactsubdir`
    builds_dest=$root_of_all_evil/builds/$bs_artifactsubdir
    ssh -o StrictHostKeyChecking=no $bs_upload_user@$bs_upload_host
"rm -rf $builds_dest; mkdir -p $builds_dest"
    scp -o StrictHostKeyChecking=no -p *.deb
$bs_upload_user@${bs_upload_host}:$builds_dest

and, on buildhost3, /var/www/repobot is a symlink to /home/buildbot/var/repobot,
and apache is configured to expose /var/www as http://buildhost3.

Does that cover it?
- Dan




More information about the devel mailing list