Documentation
¶
Overview ¶
Package pipeline provides the defined pipeline types for Vela.
Usage:
import "github.com/go-vela/types/pipeline"
Index ¶
- Variables
- func BuildWithContext(c context.Context, b *Build) context.Context
- func ContainerWithContext(c context.Context, s *Container) context.Context
- func SecretWithContext(c context.Context, s *Secret) context.Context
- func StageWithContext(c context.Context, s *Stage) context.Context
- type Build
- type Container
- type ContainerSlice
- type Metadata
- type Port
- type PortSlice
- type RuleData
- type Rules
- type Ruleset
- type Ruletype
- type Secret
- type SecretSlice
- type Stage
- type StageSlice
- type StepSecret
- type StepSecretSlice
- type Ulimit
- type UlimitSlice
- type Volume
- type VolumeSlice
- type Worker
Constants ¶
This section is empty.
Variables ¶
var ( // ErrInvalidEngine defines the error type when the // SecretEngine provided to the client is unsupported. ErrInvalidEngine = errors.New("invalid secret engine") // ErrInvalidOrg defines the error type when the // org in key does not equal the name of the organization. ErrInvalidOrg = errors.New("invalid organization in key") // ErrInvalidRepo defines the error type when the // repo in key does not equal the name of the repository. ErrInvalidRepo = errors.New("invalid repository in key") // org in key does not equal the name of the team. ErrInvalidShared = errors.New("invalid team in key") // ErrInvalidPath defines the error type when the // path provided for a type (org, repo, shared) is invalid. ErrInvalidPath = errors.New("invalid secret path") )
Functions ¶
func BuildWithContext ¶
BuildWithContext inserts the Build type to the context.
func ContainerWithContext ¶
ContainerWithContext inserts the Container type to the context.
func SecretWithContext ¶
SecretWithContext inserts the Secret type to the context.
Types ¶
type Build ¶
type Build struct { ID string `json:"id,omitempty" yaml:"id,omitempty"` Version string `json:"version,omitempty" yaml:"version,omitempty"` Metadata Metadata `json:"metadata,omitempty" yaml:"metadata,omitempty"` Worker Worker `json:"worker,omitempty" yaml:"worker,omitempty"` Secrets SecretSlice `json:"secrets,omitempty" yaml:"secrets,omitempty"` Services ContainerSlice `json:"services,omitempty" yaml:"services,omitempty"` Stages StageSlice `json:"stages,omitempty" yaml:"stages,omitempty"` Steps ContainerSlice `json:"steps,omitempty" yaml:"steps,omitempty"` }
Build is the pipeline representation of a build for a pipeline.
swagger:model PipelineBuild
func BuildFromContext ¶
BuildFromContext retrieves the Build type from the context.
func (*Build) Purge ¶
Purge removes the steps, in every stage, that contain a ruleset that do not match the provided ruledata. If all steps from a stage are removed, then the entire stage is removed from the pipeline. If no stages are provided in the pipeline, then the function will remove the steps that have a ruleset that do not match the provided ruledata. If both stages and steps are provided, then an empty pipeline is returned.
func (*Build) Sanitize ¶ added in v0.4.0
Sanitize cleans the fields for every step in each stage so they can be safely executed on the worker. If no stages are provided in the pipeline, then the function will sanitize the fields for every step in the pipeline. The fields are sanitized based off of the provided runtime driver which is setup on every worker. Currently, this function supports the following runtimes:
- Docker
- Kubernetes
type Container ¶
type Container struct { ID string `json:"id,omitempty" yaml:"id,omitempty"` Commands []string `json:"commands,omitempty" yaml:"commands,omitempty"` Detach bool `json:"detach,omitempty" yaml:"detach,omitempty"` Directory string `json:"directory,omitempty" yaml:"directory,omitempty"` Entrypoint []string `json:"entrypoint,omitempty" yaml:"entrypoint,omitempty"` Environment map[string]string `json:"environment,omitempty" yaml:"environment,omitempty"` ExitCode int `json:"exit_code,omitempty" yaml:"exit_code,omitempty"` Image string `json:"image,omitempty" yaml:"image,omitempty"` Name string `json:"name,omitempty" yaml:"name,omitempty"` Needs []string `json:"needs,omitempty" yaml:"needs,omitempty"` Networks []string `json:"networks,omitempty" yaml:"networks,omitempty"` Number int `json:"number,omitempty" yaml:"number,omitempty"` Ports []string `json:"ports,omitempty" yaml:"ports,omitempty"` Privileged bool `json:"privileged,omitempty" yaml:"privileged,omitempty"` Pull string `json:"pull,omitempty" yaml:"pull,omitempty"` Ruleset Ruleset `json:"ruleset,omitempty" yaml:"ruleset,omitempty"` Secrets StepSecretSlice `json:"secrets,omitempty" yaml:"secrets,omitempty"` Ulimits UlimitSlice `json:"ulimits,omitempty" yaml:"ulimits,omitempty"` Volumes VolumeSlice `json:"volumes,omitempty" yaml:"volumes,omitempty"` }
Container is the pipeline representation of a Container in a pipeline.
swagger:model PipelineContainer nolint:maligned // suppressing struct optimization, prefer to keep current order
func ContainerFromContext ¶
ContainerFromContext retrieves the container type from the context.
func (*Container) Execute ¶ added in v0.4.2
Execute returns true when the provided ruledata matches the conditions when we should be running the container on the worker.
func (*Container) Sanitize ¶ added in v0.1.4
Sanitize cleans the fields for every step in the pipeline so they can be safely executed on the worker. The fields are sanitized based off of the provided runtime driver which is setup on every worker. Currently, this function supports the following runtimes:
- Docker
- Kubernetes
func (*Container) Substitute ¶ added in v0.7.0
Substitute replaces every reference (${VAR} or $${VAR}) to an environment variable in the container configuration with the corresponding value for that environment variable.
type ContainerSlice ¶
type ContainerSlice []*Container
ContainerSlice is the pipeline representation of the Containers block for a pipeline.
swagger:model PipelineContainerSlice
swagger:model PipelineContainerSlice
func (*ContainerSlice) Purge ¶
func (c *ContainerSlice) Purge(r *RuleData) *ContainerSlice
Purge removes the Containers that have a ruleset that do not match the provided ruledata.
func (*ContainerSlice) Sanitize ¶ added in v0.4.0
func (c *ContainerSlice) Sanitize(driver string) *ContainerSlice
Sanitize cleans the fields for every step in the pipeline so they can be safely executed on the worker. The fields are sanitized based off of the provided runtime driver which is setup on every worker. Currently, this function supports the following runtimes:
- Docker
- Kubernetes
type Metadata ¶
type Metadata struct { Template bool `json:"template,omitempty" yaml:"template,omitempty"` Clone bool `json:"clone,omitempty" yaml:"clone,omitempty"` }
Metadata is the yaml representation of the metadata block for a pipeline.
swagger:model PipelineMetadata
type Port ¶
type Port struct { Port int `json:"port,omitempty" yaml:"port,omitempty"` Host int `json:"host,omitempty" yaml:"host,omitempty"` Protocol string `json:"protocol,omitempty" yaml:"protocol,omitempty"` }
Port is the pipeline representation of a port for a step in a pipeline.
swagger:model PipelinePort
type PortSlice ¶
type PortSlice []*Port
PortSlice is the pipeline representation of the ports for a step in a pipeline.
type RuleData ¶
type RuleData struct { Branch string `json:"branch,omitempty" yaml:"branch,omitempty"` Comment string `json:"comment,omitempty" yaml:"comment,omitempty"` Event string `json:"event,omitempty" yaml:"event,omitempty"` Path []string `json:"path,omitempty" yaml:"path,omitempty"` Repo string `json:"repo,omitempty" yaml:"repo,omitempty"` Status string `json:"status,omitempty" yaml:"status,omitempty"` Tag string `json:"tag,omitempty" yaml:"tag,omitempty"` Target string `json:"target,omitempty" yaml:"target,omitempty"` }
RuleData is the data to check our ruleset against for a step in a pipeline.
type Rules ¶
type Rules struct { Branch Ruletype `json:"branch,omitempty" yaml:"branch,omitempty"` Comment Ruletype `json:"comment,omitempty" yaml:"comment,omitempty"` Event Ruletype `json:"event,omitempty" yaml:"event,omitempty"` Path Ruletype `json:"path,omitempty" yaml:"path,omitempty"` Repo Ruletype `json:"repo,omitempty" yaml:"repo,omitempty"` Status Ruletype `json:"status,omitempty" yaml:"status,omitempty"` Tag Ruletype `json:"tag,omitempty" yaml:"tag,omitempty"` Target Ruletype `json:"target,omitempty" yaml:"target,omitempty"` }
Rules is the pipeline representation of the ruletypes from a ruleset block for a step in a pipeline.
swagger:model PipelineRules
func (*Rules) Match ¶
Match returns true for the or operator when one of the ruletypes from the rules match the provided ruledata. Match returns true for the and operator when all of the ruletypes from the rules match the provided ruledata. For both operators, when none of the ruletypes from the rules match the provided ruledata, the function returns false. nolint:gocyclo // accepting complexity in this case
type Ruleset ¶
type Ruleset struct { If Rules `json:"if,omitempty" yaml:"if,omitempty"` Unless Rules `json:"unless,omitempty" yaml:"unless,omitempty"` Matcher string `json:"matcher,omitempty" yaml:"matcher,omitempty"` Operator string `json:"operator,omitempty" yaml:"operator,omitempty"` Continue bool `json:"continue,omitempty" yaml:"continue,omitempty"` }
Ruleset is the pipeline representation of a ruleset block for a step in a pipeline.
swagger:model PipelineRuleset
type Ruletype ¶
type Ruletype []string
Ruletype is the pipeline representation of an element for a ruleset block for a step in a pipeline.
swagger:model PipelineRuletype
type Secret ¶
type Secret struct { Name string `json:"name,omitempty" yaml:"name,omitempty"` Value string `json:"value,omitempty" yaml:"value,omitempty"` Key string `json:"key,omitempty" yaml:"key,omitempty"` Engine string `json:"engine,omitempty" yaml:"engine,omitempty"` Type string `json:"type,omitempty" yaml:"type,omitempty"` Origin *Container `json:"origin,omitempty" yaml:"origin,omitempty"` }
Secret is the pipeline representation of a secret from the secrets block for a pipeline.
swagger:model PipelineSecret
func SecretFromContext ¶
SecretFromContext retrieves the Secret type from the context.
func (*Secret) ParseOrg ¶ added in v0.5.0
ParseOrg returns the parts (org, key) of the secret path when the secret is valid for a given organization.
type SecretSlice ¶
type SecretSlice []*Secret
SecretSlice is the pipeline representation of the secrets block for a pipeline.
swagger:model PipelineSecretSlice
func (*SecretSlice) Purge ¶ added in v0.5.0
func (s *SecretSlice) Purge(r *RuleData) *SecretSlice
Purge removes the secrets that have a ruleset that do not match the provided ruledata.
type Stage ¶
type Stage struct { Done chan error `json:"-" yaml:"-"` Name string `json:"name,omitempty" yaml:"name,omitempty"` Needs []string `json:"needs,omitempty" yaml:"needs,omitempty"` Steps ContainerSlice `json:"steps,omitempty" yaml:"steps,omitempty"` }
Stage is the pipeline representation of a stage in a pipeline.
swagger:model PipelineStage
func StageFromContext ¶
StageFromContext retrieves the Stage type from the context.
type StageSlice ¶
type StageSlice []*Stage
StageSlice is the pipeline representation of the stages block for a pipeline.
swagger:model PipelineStageSlice
func (*StageSlice) Purge ¶
func (s *StageSlice) Purge(r *RuleData) *StageSlice
Purge removes the steps, from the stages, that have a ruleset that do not match the provided ruledata. If all steps from a stage are removed, then the entire stage is removed from the pipeline.
func (*StageSlice) Sanitize ¶ added in v0.4.0
func (s *StageSlice) Sanitize(driver string) *StageSlice
Sanitize cleans the fields for every step in each stage so they can be safely executed on the worker. The fields are sanitized based off of the provided runtime driver which is setup on every worker. Currently, this function supports the following runtimes:
- Docker
- Kubernetes
type StepSecret ¶
type StepSecret struct { Source string `json:"source,omitempty" yaml:"source,omitempty"` Target string `json:"target,omitempty" yaml:"target,omitempty"` }
StepSecret is the pipeline representation of a secret from a secrets block for a step in a pipeline.
swagger:model PipelineStepSecret
type StepSecretSlice ¶
type StepSecretSlice []*StepSecret
StepSecretSlice is the pipeline representation of the secrets block for a step in a pipeline.
swagger:model PipelineStepSecretSlice
type Ulimit ¶
type Ulimit struct { Name string `json:"name,omitempty" yaml:"name,omitempty"` Soft int64 `json:"soft,omitempty" yaml:"soft,omitempty"` Hard int64 `json:"hard,omitempty" yaml:"hard,omitempty"` }
Ulimit is the pipeline representation of a ulimit from the ulimits block for a step in a pipeline.
swagger:model PipelineUlimit
type UlimitSlice ¶
type UlimitSlice []*Ulimit
UlimitSlice is the pipeline representation of the ulimits block for a step in a pipeline.
swagger:model PipelineUlimitSlice
type Volume ¶
type Volume struct { Source string `json:"source,omitempty" yaml:"source,omitempty"` Destination string `json:"destination,omitempty" yaml:"destination,omitempty"` AccessMode string `json:"access_mode,omitempty" yaml:"access_mode,omitempty"` }
Volume is the pipeline representation of a volume from a volumes block for a step in a pipeline.
swagger:model PipelineVolume
type VolumeSlice ¶
type VolumeSlice []*Volume
VolumeSlice is the pipeline representation of the volumes block for a step in a pipeline.
swagger:model PipelineVolumeSlice