parallel abuild job orchestrator
William Pitcock dd8b137a91 add SQL schema 2 years ago
abuildd abuildd-build: add logging support 2 years ago
.gitignore Initial commit 2 years ago
LICENSE Initial commit 2 years ago expand on README with plans 2 years ago
abuildd-agentd add abuildd-agentd 2 years ago
abuildd-build abuildd-build: return correct exit code when build failure occurs 2 years ago
abuildd.sql add SQL schema 2 years ago


an Alpine archive management software replacement


abuildd contains multiple components that replaces the entire Alpine archive management software. These are:

  • abuildd-build: runs a build and stages artifacts to a designated location

  • abuildd-agentd: runs as an agent and consumes MQTT messages for build requests

  • abuildd-collect: retrieves artifacts from a build server for a specific build

  • abuildd-compose: gathers all collected artifacts and composes a repository or

  • abuildd-enqueue: enqueues new packages for building with dependency resolution

  • abuildd-git-hook: runs abuild-enqueue as necessary when new git commits are

  • abuildd-monitord: a monitoring daemon which watches the MQTT server for feedback from

                   the build servers
  • abuildd.webhook: a webhook implementation which enqueues new packages based on

                  changeset notifications
  • abuildd.status: an aiohttp.web application which shows current status of the

                 build servers, also includes `abuildd.webhook`

abuildd depends on a preconfigured postgresql database and mqtt server, you can use any mqtt server you wish for the task (mosquitto, rabbitmq, etc.). It also depends on bubblewrap being installed for sandboxing the build.


abuildd can be configured to build PPAs, as well as official repos. See the abuildd-git-hook documentation for more details. Alternatively, a Github webhook can be found in the abuildd.webhook module. The webhook module requires gunicorn and aiohttp.

TODO: explain how to set up the webhook