zuul/doc/source/developer/datamodel.rst

2.1 KiB

Data Model

It all starts with the :py~zuul.model.Pipeline. A Pipeline is the basic organizational structure that everything else hangs off.

zuul.model.Pipeline

Pipelines have a configured :py~zuul.manager.PipelineManager which controlls how the :pyRef <zuul.model.Ref> objects are enqueued and processed.

There are currently two, :py~zuul.manager.dependent.DependentPipelineManager and :py~zuul.manager.independent.IndependentPipelineManager

zuul.manager.PipelineManager

zuul.manager.dependent.DependentPipelineManager

zuul.manager.independent.IndependentPipelineManager

A :py~zuul.model.Pipeline has one or more :py~zuul.model.ChangeQueue objects.

zuul.model.ChangeQueue

A :py~zuul.model.Job represents the definition of what to do. A :py~zuul.model.Build represents a single run of a :py~zuul.model.Job. A :py~zuul.model.JobGraph is used to encapsulate the dependencies between one or more :py~zuul.model.Job objects.

zuul.model.Job

zuul.model.JobGraph

zuul.model.Build

The :py~zuul.manager.base.PipelineManager enqueues each :pyRef <zuul.model.Ref> into the :py~zuul.model.ChangeQueue in a :py~zuul.model.QueueItem.

zuul.model.QueueItem

As the Changes are processed, each :py~zuul.model.Build is put into a :py~zuul.model.BuildSet

zuul.model.BuildSet

Changes

zuul.model.Change

zuul.model.Ref

Filters

zuul.model.RefFilter

zuul.model.EventFilter

Tenants

An abide is a collection of tenants.

zuul.model.Tenant

zuul.model.UnparsedAbideConfig

zuul.model.UnparsedConfig

zuul.model.ParsedConfig

Other Global Objects

zuul.model.Project

zuul.model.Layout

zuul.model.RepoFiles

zuul.model.Worker

zuul.model.TriggerEvent