Project:Build Service

Has Name::Gentoo Build Service
Description Has Description::Deploy privately a build service for building and testing Gentoo packages.
Project email Has Contact::
IRC channel #gentoo-buildservice
Lead(s) none
No lead election date set
Member(s) SMW::off
  • Amy Liffey (amynka)
SMW::on
Subproject(s)
(and inherited member(s))
(none)
Parent Project Gentoo
Project listing

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 or a VM - 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 alpha, usage is encouraged in a local environment still. Documentation (in construction) can be found here.

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), a CLI and an agent executable for bringing up nodes to the cluster. Configurations can also be managed with etcd.

A web interface is available to display tasks overview and starting new builds, it's also possible to see the build live from the webui. It currently allows remote building: nodes are executing the steps inside a Docker container or a Vagrant environment, the content originated from it is managed and can be published. Nodes are communicating with a broker which can be MongoDB, AMQP (e.g RabbitMQ), Redis, AWS SQS, memcache, Dynamodb.

The repositories containing the tools are currently here and in the Build Service Project organization on GitHub.

User contributors

UserNameRole
geaaruDaniele RondinaDeveloper

Development plan / TODO

  • Implement syncing of artefacts [Done]
  • Handle Namespaces (tag, publish) [Done]
  • Handle GitHub webhooks [Done]
  • Implement Users/Groups and login system [Done]
  • Nail down security aspects
  • Documentation
  • Release
This article is issued from Gentoo. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.