Ravenports / ravenadm

Administration tool for Ravenports
http://www.ravenports.com
ISC License
17 stars 3 forks source link

Distributed builds. #10

Open ghost opened 5 years ago

ghost commented 5 years ago

This is moot! And may ever be complete out of the scope of the project.

I'm sure I already asked about it before, probably on Synth, and would not expect something like this to be implemented anytime soon ever if "accepted".

The ( corner ) user cases would be:

  1. people who want/need to build/test ports against different OSes, architectures, etc. and use dedicated builders ( but not only ); and

  2. when there are more than one person building/testing ports against the same builder. And everything between those.

The idea is to have "ravenadm" working in a Client+Agent fashion, with the Agent Endpoint being a daemon which receive the build request, queue them, and then build the ports. Similar to the 'poudriere daemon' feature ( which actually was never implemented ) but on steroids.

In the Client Endpoint it would be interesting if possible to store/configure several Agent Endpoints, and also to be able to group them. Also, I suppose a small IPC would be necessary to keep the Client Endpoint fed with the building information.

It means, if when building ports the user always need to build for some/several different architectures or OS versions, he/she could just dispatch a single command and leave, ever if it is a single builder used for different objectives ( because they would all be queued ).

This would probably also lead to the need to put ravenadm and ravenports in separated packages/ports, because the actual "Ravenports" would just need to be in one of the endpoints ( probably at the Agent Endpoint ).

I suppose this kind of arrangement would also facilitate Ravenports to eventually be integrated in CI tools, or ever become one ( somehow ).

[EDITED]

kraileth commented 5 years ago

Actually I think there is something planned for the future to allow easier testing against multiple platforms. Ideally this could look like this: Somebody uploads a buildsheet. This is sent to multiple servers running several / all supported operating systems, the port built and the build results (success or failure) are reported back. No idea however when something like this will be reality. The tooling does not exist, the necessary dedicated build servers don't exist. So far it's pie in the sky. But I'm really looking forward to the little steps towards this. :) And the more people, organizations and ultimately corporations adopt Ravenports the more likely it will become.

jrmarino commented 1 year ago

I guess technically somebody could build the server and just issue commands to ravenadm program (across a network even) and just check the results later. It doesn't have to be incorporated in ravenadm.