Skip to content

The AlmaLinux OS project Build System documentation and issue tracker.

License

Notifications You must be signed in to change notification settings

AlmaLinux/build-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 

Repository files navigation

About the AlmaLinux Build System

What is AlmaLinux Build System? AlmaLinux Build System is a project designed to automate processes of building distribution and packages, testing packages, signing packages, and releasing them to public repositories. The general purpose of the AlmaLinux Build System is to minimize manual work in order to reduce the amount of human-caused mistakes. We started to develop our product in 2012 for CloudLinux OS building and automatization. Specifically for AlmaLinux's other projects KernelCare and Imunify360 support, we launched the ability to build and test deb packages type. Besides being used for typical testing scenarios, AlmaLinux Build System is integrated with Jenkins for complicated scenarios.

Why did we roll our own?

The main reason is to help our quickly-growing community to learn how to build and test rpm packages faster and easier. As well, the support of deb packaged was required. So AlmaLinux needed an integrated pipeline for all the distribution maintenance processes: building, testing, signing and releasing packages. To manage all these phases together, not separately, successfully and effectively we created AlmaLinux Build System.

Development

image

  • Build System's Master Service interacts via API interface with UI and CLI tools.
  • Build Node sends requests to the Master Service and receives Build Tasks to build packages. After being built these packages are kept as artifacts at the Artifact Storage.
  • Test System sends a request and receives Test Tasks (builds) to test built packages from Artefact Storage. Test System test packages via Test Nodes (eg. Docker or OpenNebula with different architectures) and send test artifacts or test logs and reports back to Artifact Storage.
  • Sign Server sends a request and receives sign tasks to sign packages with our PGP key. It takes unsigned packages from Artifact Storage and puts them back signed.
  • Release System sends a request and receives release tasks to upload signed packages to public repositories.
  • Git Server sends updates via API to Master Service. It does it with the help of two services: gitea-listener and git-cacher

AlmaLinux Build System supports different architectures such as x86_64, aarch64, ppc64le and s390x. Build system and test system are scalable. Also, their benefits are auto modification and debranding. We support several types of packages (also for Ubuntu and Debian).

Documentation

More information and user guides can be found in the Build System Wiki.

Reporting issues and track the progress

All issues should be reported to this project. A GitHub's kanban board is used for the Build System project to track the progress.

About

The AlmaLinux OS project Build System documentation and issue tracker.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published