Hi Gelonida,
Here is a first version of the flash_dashboard plugin
https://github.com/buildbot/buildbot/pull/3041
there are still needs to be some polishing, but the main ideas are there.
See documentation to get an idea on how to use it
https://github.com/buildbot/buildbot/pull/3041/files#diff-eea13d1ebd483f573175b4da8762a6e5
Please let me know if this is the right level of abstraction for you.
You can use requests to get the REST api, but you can also use
app.buildbot_api.dataGet to bypass the REST api layer (and the
authorization layer)
Pierre
On Tue, Mar 14, 2017 at 12:05 PM Gelonida <[email protected]
<mailto:[email protected]>> wrote:
Hi Pierre,
Thanks for your reply,
In our context we don't need a real time dashboard (at least for
the start)
I think I will start with a server side created bottle or flask
implementation and play with angular at a later time.
The idea is to have a view quickly for some users and Angular
views are not quickly to develop if you don't have the habit.
I did not try with buildbot (and it's js dependencies), but often
just getting the node / grunt / gulp build environment up and
running can already be painful. So an attractive Angular web
front end only later.
Do I already need a web-dev build environment for hooking up a
single url into the buildbot env or is there some plugin magic,
that will avoid this.
I'd appreciate a lot if you could point me to information of how
to integrate any url (static / server side) into the buildbot webif.
If easier to integrate, then the dynamic web script could just
yield some JSON file but I'd be curious of how to integrate
some non Angular HTML.
My dynamic script could either yield something like:
<html>
<body>
<h1>all release branches<h1>
<form>
<select name = "branchgroups">
<option value="all">all</option>
<option value="release">release</option>
<option value="develop">develop</option>
</select>
</form>
<table>
. . . .
</table>
</body>
</html>
or just a json with something similar to:
{ "title": "all release branches",
"header_row": [ "project", "branch", "builder", "builds"],
"rows" : [
[ "pjt one", "rls/v1.0", "lint_results", [ {"buildid": 4,
"status": "pass"}, {"buildid": 3, "status": "pass"}, {"buildid":
1, "status": "fail"}] ],
[ "pjt one", "rls/v1.0", "quick_unittests", [ {"buildid": 4,
"status": "pass"}, {"buildid": 3, "status": "pass"}, {"buildid":
1, "status": "fail"}] ],
[ "pjt one", "rls/v2.0", "lint_results", [ {"buildid": 6,
"status": "fail"}, {"buildid": 5, "status": "pass"}, {"buildid":
2, "status": "fail"}] ]
]
}
whatever is easier to integrate.
At the moment I start looking at the REST-API calls, and the
amount of calls, that I would need to implement such view.
On a first glance this seems quite costly.
I'll follow up.
On 03/12/2017 05:48 PM, Pierre Tardy wrote:
Question(s):
----------------
Did anyone already implement something similar?
Well console view and waterfall views are such dashboards or
showing the builds in specific manner.
Does anyone have a similar issue? If yes how do you solve
this problem?
What would be the easiest way to create such a page
The easiest way if you know angularjs is to indeed write a UI
plugin. buildbot UI has been designed for this, and this is the
only way you can write a real time updated dashboard.
I'm not very good with web development and never tried to
change the buildbot web front end.
Would it be simpler to create a standalone page, which
constructs this contents with the help of the web api?
Server side servers are indeed a bit easier. You could indeed
create a separate flask application that would access the REST
api using python-requests.
This can help you to write a dashboard to look exactly as you wish.
I usually recommend to take the effort to learn angularJS and
front end development as I find it did unlock a lot of
opportunities.
I do realize it is not practical for everybody, and we should
have an easier story for custom dashboard creation that does not
require front end development mastery.
I will be happy to help reviewing your flask application, and
will help you integrate it as a dashboard in the main UI. I
think it can work with some JS magic to embed a flask
application into a Buildbot UI plugin.
Regards
Pierre