Skip to content

Commit

Permalink
docs: add a docstring
Browse files Browse the repository at this point in the history
  • Loading branch information
enku committed Aug 19, 2024
1 parent 00bb986 commit e4264d0
Showing 1 changed file with 32 additions and 1 deletion.
33 changes: 32 additions & 1 deletion src/gentoo_build_publisher/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,35 @@
"""Gentoo Build Publisher"""
"""Gentoo Build Publisher
GBP is a system which pull Jenkins artifacts and publishes them as "builds" for
different machine configurations (machines). The published builds are made available to
client machines which point to their respective machine configurations.
- The emerge --sync, emerge --update @world cycle installs only binary packages that
were built specifically for the machine.
- CI/CD pulls repos (portage & overlays) and only starts a build when they have changed.
- The machines' portage configuration (/etc/portage`, repos, world file, etc.) are kept
in version control and is synced to the machines the same way packages and portage
tree are.
- Binary packages are built inside of server-less, root-less containers using buildah.
- All builds are not "published" until they are completed and successful.
- Machines sync a build's portage repos via rsync and pull binary packages build from
the repos via http.
+--------------------+ +-----------+ +--------+ +---------+
| ebuild | | | | | | |
| repos | => | | | | => | |
+--------------------+ | Jenkins | | GBP | rsync | Gentoo |
| | => | | | machine |
+--------------------+ | | | | => | |
| machine definition | => |-----------| |--------| http | |
| repo | | artifacts | | builds | | |
+--------------------+ +-----------+ +--------+ +---------+
"""

# pylint: disable=invalid-name
from celery import Celery
Expand Down

0 comments on commit e4264d0

Please sign in to comment.