<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
{font-family:Verdana;
panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
{mso-style-priority:99;
mso-style-link:"Balloon Text Char";
margin:0in;
margin-bottom:.0001pt;
font-size:8.0pt;
font-family:"Tahoma","sans-serif";}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Calibri","sans-serif";
color:windowtext;}
span.BalloonTextChar
{mso-style-name:"Balloon Text Char";
mso-style-priority:99;
mso-style-link:"Balloon Text";
font-family:"Tahoma","sans-serif";}
.MsoChpDefault
{mso-style-type:export-only;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal>Hi Cristian,<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I use this all the time to put together the build URL. I’m sure you could add onto it to add in the part for the individual build step if you wanted. I do this particular bit so I can create a shortcut in the build output to the build page, so someone who copies down the build output from the builds file server has a link back to BuildBot for that particular build.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New";color:black'> </span><i><span style='font-size:10.0pt;font-family:"Courier New";color:#7D7D7D'>@properties.renderer</span></i><span style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New";color:black'> </span><span style='font-size:10.0pt;font-family:"Courier New";color:blue'>def</span><span style='font-size:10.0pt;font-family:"Courier New";color:black'> <b>MakeCommand</b>(<i>self</i>):<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New";color:black'> theCommand = [JoinPath((</span><i><span style='font-size:10.0pt;font-family:"Courier New";color:#C9802B'>"BuildSystem"</span></i><span style='font-size:10.0pt;font-family:"Courier New";color:black'>, </span><i><span style='font-size:10.0pt;font-family:"Courier New";color:#C9802B'>"Distribute.py"</span></i><span style='font-size:10.0pt;font-family:"Courier New";color:black'>), </span><i><span style='font-size:10.0pt;font-family:"Courier New";color:#C9802B'>"Win"</span></i><span style='font-size:10.0pt;font-family:"Courier New";color:black'>)]</span><span style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New";color:black'><o:p> </o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New";color:black'> listUrlPieces = []</span><span style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New";color:black'> listUrlPieces.append(</span><span style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New";color:black'> <i>self</i>.build.builder.botmaster.master.config.buildbotURL)</span><span style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New";color:black'> listUrlPieces.append(</span><i><span style='font-size:10.0pt;font-family:"Courier New";color:#C9802B'>"builders"</span></i><span style='font-size:10.0pt;font-family:"Courier New";color:black'>)</span><span style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New";color:black'> listUrlPieces.append(<i>self</i>.build.getProperty(</span><i><span style='font-size:10.0pt;font-family:"Courier New";color:#C9802B'>"buildername"</span></i><span style='font-size:10.0pt;font-family:"Courier New";color:black'>))</span><span style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New";color:black'> listUrlPieces.append(</span><i><span style='font-size:10.0pt;font-family:"Courier New";color:#C9802B'>"builds"</span></i><span style='font-size:10.0pt;font-family:"Courier New";color:black'>)</span><span style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New";color:black'> listUrlPieces.append(</span><span style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New";color:black'> str(<i>self</i>.build.getProperty(</span><i><span style='font-size:10.0pt;font-family:"Courier New";color:#C9802B'>"buildnumber"</span></i><span style='font-size:10.0pt;font-family:"Courier New";color:black'>)) + </span><i><span style='font-size:10.0pt;font-family:"Courier New";color:#C9802B'>"#BuildInfo"</span></i><span style='font-size:10.0pt;font-family:"Courier New";color:black'>)<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New";color:black'> theCommand.append(</span><i><span style='font-size:10.0pt;font-family:"Courier New";color:#C9802B'>'/'</span></i><span style='font-size:10.0pt;font-family:"Courier New";color:black'>.join(s.strip(</span><i><span style='font-size:10.0pt;font-family:"Courier New";color:#C9802B'>'/'</span></i><span style='font-size:10.0pt;font-family:"Courier New";color:black'>) </span><span style='font-size:10.0pt;font-family:"Courier New";color:blue'>for</span><span style='font-size:10.0pt;font-family:"Courier New";color:black'> s </span><span style='font-size:10.0pt;font-family:"Courier New";color:blue'>in</span><span style='font-size:10.0pt;font-family:"Courier New";color:black'> listUrlPieces))</span><span style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'> </span><span style='font-size:10.0pt;font-family:"Courier New";color:blue'>return</span><span style='font-size:10.0pt;font-family:"Courier New";color:black'> theCommand</span><o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New";color:black'> shell.Compile(</span><span style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New";color:black'> command=MakeCommand,</span><span style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New";color:black'> name=</span><i><span style='font-size:10.0pt;font-family:"Courier New";color:#C9802B'>"Distribute"</span></i><span style='font-size:10.0pt;font-family:"Courier New";color:black'>)<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";color:black'>)</span><o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 style='border-collapse:collapse'><tr style='height:24.3pt'><td width=55 style='width:41.05pt;padding:0in 5.4pt 0in 5.4pt;height:24.3pt'><p class=MsoNormal style='line-height:18.75pt'><span style='font-size:12.0pt;font-family:"Times New Roman","serif"'><img width=50 height=31 id="Picture_x0020_1" src="cid:image001.png@01D163E4.67CBD540" alt="Description: http://www.venafi.com/img/venafi_email_signature_logo.gif"></span><span style='font-size:8.0pt;font-family:"Verdana","sans-serif";color:gray'><o:p></o:p></span></p></td><td width=584 valign=top style='width:437.75pt;padding:0in 5.4pt 0in 5.4pt;height:24.3pt'><p class=MsoNormal style='line-height:18.75pt'><span style='font-size:8.0pt;font-family:"Verdana","sans-serif";color:gray'>| Jeremy Cornett | Configuration Management Engineer</span><span style='font-size:8.0pt;font-family:"Verdana","sans-serif";color:gray'><o:p></o:p></span></p></td></tr></table><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>