Build environment consists of the following components:


User — VCS — Build environment workflow looks like the following:

Fig. 2.1.1 "User — VCS — Build environment workflow"

Build environment — Repository workflow:

Fig. 2.1.2 “Build environment — Repository workflow”

Repository — Distribution workflow:

Рисунок 2.1.3 “Repository — Distribution workflow”

Note that the diagrams above gives an overview picture, some technical details are missing there.

Operations with packages

The main participant of the data flow is a package
The sequence of operations required to add a new package to repository is shown at Fig. 2.1.1:

  1. New package from some outer source is loaded into the system using WebUI or Git command-line interface.
  2. The next step is to build the new package.
  3. Finally, the package is published in target repository.

Package building process contains the following steps (shown at Fig. 2.1.2):

Adding file to repository:

The main requirement for repository is data consistency. Simultaneous updates that come to the repository are put into a queue and processed one by one. This allows to avoid "broken dependencies" problem (when some packages cannot be installed because they depend on packages which are missing in the repository).

Distribution building process

Distribution building process (shown at Fig. 2.1.3):

ABF Documentation
ABF Getting Started • ABF - About • ABF: Automatic rebuild of package reverse dependencies • Build server structure and workflow • Creating ABF build bots