<div dir="ltr"><div>Hi all,</div><div>Usually, the way to do that is to setup a custom reporter class.</div><div>You can then use the data api to fetch as many information on the build as you need to build your html report, and push it to S3.</div><div><br></div><div>The details of what you can get with rest api is documented here:</div><div><a href="https://docs.buildbot.net/0.9.5/developer/rest.html">https://docs.buildbot.net/0.9.5/developer/rest.html</a></div><div><br></div><div>The best is to look at the example of reporters/utils <a href="https://github.com/buildbot/buildbot/blob/master/master/buildbot/reporters/utils.py">https://github.com/buildbot/buildbot/blob/master/master/buildbot/reporters/utils.py</a></div><div><br></div><div>If you are not confident enough with twisted and async, you can just put a MasterShellCommand with a python script in the end of your builds and use the REST api to fetch the data you need.</div><div>In order to get raw logs, you can use the raw log endpoint (no need for logobservers!):</div><div><br></div><div>e.g: <a href="https://nine.buildbot.net/api/v2/logs/357614/raw">https://nine.buildbot.net/api/v2/logs/357614/raw</a></div><div><br></div><div>Note that buildbot store the stdout/stderr information, which is removed when you fetch it via raw endpoint.</div><div><br></div><div>Here is an example on how to process the stream logs that we use for debugging our integration tests:</div><div><a href="https://github.com/buildbot/buildbot/blob/master/master/buildbot/test/util/integration.py#L246">https://github.com/buildbot/buildbot/blob/master/master/buildbot/test/util/integration.py#L246</a><br></div><div><br></div><div>Regards</div><div>Pierre</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr">Le lun. 27 mars 2017 à 18:41, Alvaro Erickson <<a href="mailto:alvaro.erickson@gmail.com">alvaro.erickson@gmail.com</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg">Hi Mike,<br class="gmail_msg"><br class="gmail_msg"></div>I too would like to see what your solution for saving a log (into plain text, not html) for all steps after a build is finished. Specifically, if you could please share the subclassed Build class for log generation. Any examples would be very helpful.<br class="gmail_msg"><br class="gmail_msg"></div>Background: On my work project, one of the goals is they want all the build logs to be archived.<br class="gmail_msg"><br class="gmail_msg"></div>Regards,<br class="gmail_msg"><br class="gmail_msg"></div>Alvaro<br class="gmail_msg"></div><div class="gmail_extra gmail_msg"><br class="gmail_msg"><div class="gmail_quote gmail_msg">On Mon, Mar 27, 2017 at 8:52 AM, Mike Alexeev <span dir="ltr" class="gmail_msg"><<a href="mailto:mike.42.alexeev@gmail.com" class="gmail_msg" target="_blank">mike.42.alexeev@gmail.com</a>></span> wrote:<br class="gmail_msg"><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="gmail_msg">Hello, Koutheir<div class="gmail_msg"><br class="gmail_msg"><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">I have also similar problem. </div><div class="gmail_msg">I need to save log from all steps after build finished.</div><div class="gmail_msg">No html just plain text.<br class="gmail_msg"></div></div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">It seems that there is no ready solution. </div><div class="gmail_msg">For example there is no file storage in buildbot for files (reports, logs and other build artifacts).</div><div class="gmail_msg">So my solution is not universal though it can be helpful. </div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">For log generation I subclassed Build class. You can set your own custom Build class</div><div class="gmail_msg">to build factory in buildbot config.</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">I overrided buildFinished method and added there code to collect log from all steps.</div><div class="gmail_msg">In build instance you have access to Data API and you can read logs from DB.</div><div class="gmail_msg">I can share example if you want.</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">For file serving I use nginx.</div><div class="gmail_msg">I added links to log in build page template and substitute path to log based on build properties.</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">So every build has link on its page to log.</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">I think that saving log can also be implemented as step running on Local Worker </div><div class="gmail_msg">(it runs on master).  But I used custom build class because it looks cleaner (no odd steps in build).</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">By the way, can be there default implementation for file storage in buildbot? </div><div class="gmail_msg">For example default solution with twisted file serving</div><div class="gmail_msg">and possibility to use server like nginx in bigger setups. Just like db setup - sqlite has no external</div><div class="gmail_msg"> processes and easy to setup, but  also you can use postgre which much more faster.</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">What about adding post-build hook in configuration? Log-saving method for example could be</div><div class="gmail_msg"> set there</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"><br class="gmail_msg"></div></div>
<br class="gmail_msg">_______________________________________________<br class="gmail_msg">
users mailing list<br class="gmail_msg">
<a href="mailto:users@buildbot.net" class="gmail_msg" target="_blank">users@buildbot.net</a><br class="gmail_msg">
<a href="https://lists.buildbot.net/mailman/listinfo/users" rel="noreferrer" class="gmail_msg" target="_blank">https://lists.buildbot.net/mailman/listinfo/users</a><br class="gmail_msg"></blockquote></div><br class="gmail_msg"></div>
_______________________________________________<br class="gmail_msg">
users mailing list<br class="gmail_msg">
<a href="mailto:users@buildbot.net" class="gmail_msg" target="_blank">users@buildbot.net</a><br class="gmail_msg">
<a href="https://lists.buildbot.net/mailman/listinfo/users" rel="noreferrer" class="gmail_msg" target="_blank">https://lists.buildbot.net/mailman/listinfo/users</a></blockquote></div>