Skip to main content

Gentoo Build Publisher

Project description

Gentoo Build Publisher dashboard

Gentoo Build Publisher

Introduction

Gentoo Build Publisher (GBP) is a Gentoo build server, binary package host (binhost), ebuild repo server, and configuration manager in one which uses continuous integration and other tools to deliver successful, consistent "builds" for a single machine or multiple heterogeneous Gentoo machines.

In case you didn't know, Gentoo Linux is a source-based rolling-release meta-distribution that you can twist and mold into pretty much anything you like. That's just a verbose way of saying Gentoo is awesome.

If you run a Gentoo system, say a laptop, you may be updating your system using the standard emerge --sync followed by a world update. This pulls in the latest ebuilds from the Gentoo repo and if there are any updates applicable to your system then they get built on your system.

Except sometimes they don't.

Sometimes builds fail. Sometimes USE flags need to be changed. Sometimes there's an update to a piece of software that is buggy and you want to revert. Sometimes a build takes a long time and you don't want to wait.

Well since Gentoo is the distribution you build yourself, CI/CD seems like a natural fit. Enter Gentoo Build Publisher.

Gentoo Build Publisher combines a repo/overlay server, basic configuration management, and binary package server (binhost) for complete and atomic builds. Successful builds performed by Jenkins are served by GBP where client machines sync from.

Procedure

  • Build a Gentoo Build Publisher instance. Refer to the Install Guide.
  • Create "machines" and "repos" jobs in Jenkins. For example gbp addrepo gentoo https://anongit.gentoo.org/git/repo/gentoo.git; gbp addmachine base https://github.com/enku/gbp-machines.git Use the gbp-machines repo as a starting point. This can also be done manually within the Jenkins UI.
  • Once a Jenkins job has been pulled by Gentoo Build Publisher it can be published so that actual machines can use it (e.g. rsync for repos, http for binpkgs). Use the CLI (gbp publish) to publish a pulled build.
  • If the job fails, it will not be pulled.
  • Your real machine, for example, base, syncs from, rsync://gbp/repos/base/gentoo. You can dynamically acquire the repos.conf file from https://gbp/machines/base/repos.conf and the binrepos.conf from https://gbp/machines/base/binrepos.conf.

Jenkins build

CLI

The command-line interface can inspect, publish, pull, schedule builds and more.

gbpcli screenshot

Plugins

Various plugins exist for Gentoo Build Publisher. Some are "server" plugins, meaning they plug into Gentoo Build Publisher, the server. Others are "client" plugins, meaning they plug into the CLI. And some are both. The following Plugins are available.

Plugin Description Client/Server
archive A plugin to dump and restore builds Both (but only runs on from the server)
feeds Atom/RSS feeds for Gentoo Build Publisher Server
fl A pfl-inspired plugin Both
notifications A plugin that can send notifications when events occur Server
ps A plugin to display your Gentoo Build Publisher processes Both
purge A plugin to purge old builds Server
webhook A webhook for gbp-notifications to display desktop notifications and more Client

Articles

Below are some articles that explain some aspects of Build Publisher in detail.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gentoo_build_publisher-3.1.0.tar.gz (137.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gentoo_build_publisher-3.1.0-py3-none-any.whl (132.9 kB view details)

Uploaded Python 3

File details

Details for the file gentoo_build_publisher-3.1.0.tar.gz.

File metadata

  • Download URL: gentoo_build_publisher-3.1.0.tar.gz
  • Upload date:
  • Size: 137.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for gentoo_build_publisher-3.1.0.tar.gz
Algorithm Hash digest
SHA256 9525eed8c3934afa5246a5c1a40e4b1df1117a4f7f58a6ee94bbdca7ada0f66f
MD5 3922e7a215161c9f3b5dd831627e2d92
BLAKE2b-256 6aa6fe575e3fdf780e9a8a2a2944beaad57eb6b765414c2053e8a8f9b9c40351

See more details on using hashes here.

File details

Details for the file gentoo_build_publisher-3.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for gentoo_build_publisher-3.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bc44d48bb0a2e66984e47198fd702912d5cd0b454a421a0c26fde54ee942f76a
MD5 bd41c3611edc10231b14ad570c584484
BLAKE2b-256 3cdf09c8848145e66021f9eed73d029b59bfc19565401bbc753f03a961519d4b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page