User Tools

Site Tools


devdocs:build_system_infrastructure

This is an old revision of the document!


Cucumber Linux Build & Distribution Infrastructure

Types of Systems

Any system that is part of the build/distribution infrastructure can be classified as one of the following types of systems.

Bootstrap Server

A bootstrap server is a server that is used to bootstrap a new build of Cucumber Linux from Scratch; it is the system doing the initial build, through the end of phase 4.

Responsibilities

  1. Build the initial Cucumber Linux from Scratch build.
  2. Build the initial installation ISO images.
  3. Upload the initial ports tree and package directory to the staging server.

Build Server

A build server is a server that is used to build updated packages for an existing build of Cucumber Linux. Each Build Server has a staging server that it works with; the build server is responsible for building the updated packages and then uploading them to the appropriate directory on the staging server.

Responsibilities

  1. Build updated packages.
  2. Determine the appropriate package tarball name for each package built.
  3. Move old packages to the old_packages directory.
  4. Pull its /usr/ports directory down from its staging server.
  5. Push its /opt/packages and /opt/old_packages directories up to its staging server.
  6. Build any ISO updated images that are not the initial ISO image for a build of Cucumber Linux.

Distribution Server

A distribution server is essentially a mirror server; it holds the binary packages, source code, installer and ports tree for a set of Cucumber Linux versions. The set of versions to mirror may contain one or more versions of Cucumber Linux.

Responsibilities

  1. Provide a publicly facing mirror server the Cucumber Linux packages, source code and installer.

Staging Server

A staging server is basically a special distribution server where changes are initially uploaded for testing. All systems that are testing new changes to ensure they are stable use a staging server as their mirror instead of a distribution server. Once the changes on the staging server are deemed to be ready for general release, they are “pushed” out to all of the distribution servers that the staging server is responsible for updating. A staging server can be responsible for updating one or more distribution servers. A staging server stages exactly one version of Cucumber Linux for testing.

devdocs/build_system_infrastructure.1542315131.txt.gz · Last modified: 2018/11/15 20:52 by z5t1