-
Notifications
You must be signed in to change notification settings - Fork 14
Build
The Build
pipeline is responsible for creating a new version of your distrobution. Its scope goes from fetching the content up to deploying the final output on the machine hosting your front-facing web server. It is divided in several stages.
Name | Description | Type | Required? |
---|---|---|---|
NAMESPACE | Name to be used to differentiate different distribution in the builder machine, avoiding overrides. | String | Yes |
CONFIG_REPO_HOST | Username and host to be used with git clone command. i.e.: git@git.myhost.com:
|
String | Yes |
MIN_VERSION | If the build should produce a new MIN VERSION | Boolean | No |
CLR_PUBLIC_DL_URL | Alternative mirror to use instead of download.clearlinux.org
|
String | No |
CLR_LATEST | A Clear Linux version to be used instead of the lastest | String | No |
On Success, a new release should be successfully found on the PUBLISHING_HOST (defined by the workflow config)
On Failure, see log for details
This is a setup stage, which is responsible for making sure that the build environment is in good shape and calculating the version number to be used with the build and checking the availability of the required tools and servers.
This stage is responsible to fetch the content that should be part of the next release. It is composed by multiple steps, being each one a 'Content provider'. A content provider is just a script that fetches from a given source and bundles from a given repo and puts them in their predefined places. Once all content providers have fetched their content, a final step wraps rpms into a single local repo that will be consumed by mixer on the next step. It also creates a package list to be published as metadata of the release.
Currently, clr-distro-factory
offers only an implementation for Koji, but to add different content providers should be a straight forward task.
This is stage is responsible for configuring and running mixer on the input data to produce the new release. Most of its code is for properly preparing the mixer workspace for a successful run, including dealing with format bumps.
This stage responsible for the generation of new images based on the release that was just produced by the previous stage.
This stage is responsible for finalization tasks (that range from meta data creation to tagging repos to allow for reproducible builds) and copying all the required outputs to a staging folder. At this points, all the expected artifacts of a release are done and the new release is ready to either be validated by QA or be publish to clients (if QA is non-existent).
On clr-distro-factory
, there is no 'default' QA implementation (due to reasons discussed here), so this stage follows 'Stage' and its only job is to rsync the newly staged release to the appropriated folder on the machine that will serve the Downstream to clients.
*Other names and brands may be claimed as the property of others.