Project:Build Service

The Gentoo Build Service project will have as aim to provide a software and relative ebuilds that would offer a way to deploy privately a build service:

A web interface that exposes API to control remote workers (a cluster of builder nodes) that can build packages as a set of repo with specifications that indicates the packages, the steps, and the desired customizations (useflags, keywords, local ebuilds override, ecc..). Workers will build packages on top of a container - with support (at least) for Docker.

In such way, the webui can be hooked also to Github repositories, and build-test against Pull requests or changes of an overlay, and even the Gentoo tree, with the option to publish the generated artefacts thru the web server.

The project is still in early stage, so consider this page under construction yet.

= Project Status =

Code is still experimental and in alpha state, and it's not suitable for deployment, usage is strongly discouraged unless for development purposes. Documentation is also missing. It doesn't have a login system yet, so if you are experimenting it - do it locally or do not expose the service outside your network. It is composed already of a server (master) and an agent executable for nodes.

A (skeleton) web interface is available to display tasks overview and starting new builds, it's possible to see the build live from the webui. It currently allows remote building and nodes are executing the steps inside a Docker container - also handles nodes registration thru AMQP but it's not syncing artefacts to the webserver.

The repository is currently hosted on GitHub, it is also requiring other libraries that where split (for maintenance) but as for now it's required to build a custom Docker image to run the building environment.

Development plan / TODO

 * Implement syncing of artefacts [Done]
 * Handle Namespaces (tag, publish) [Done]
 * Handle GitHub webhooks
 * Implement Users/Groups and login system [Progress/Done]
 * Nail down security aspects
 * Documentation
 * Release