software-engineering

Components

Version Control Server

The version control server, commonly a Git server, contains the current (and the previous states) of the source code base. The developer pushes changes to the VCS and afterwards, common developer practices, such as branch management, pull-requests, and so on, can take place.

Examples: GitHub, GitLab, Gitea

Build Server

The build server pulls from the version control server and performs different actions sequentially on the source code. Common actions are linting, analysing, testing and building. After the build server built an artifact, the builder server stores the artifact on a artifact store.

Examples: Jenkins, GitLab Pipelines, GitHub Actions

Artifact Store

The artifact store is the storage of build artifacts, such as executable, binaries, libraries or Docker images. Its main purpose is the store the artifacts, but artifact stores can also perform different actions. For example, artifact stores can discover security vulnerabilities, compare hashes with hashes from a vulnerability database, and so on.

Examples: Nexus, Reposilite, Artifactory, Docker Registry