manifest

package module
v0.1.201 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 18, 2021 License: MIT Imports: 14 Imported by: 14

README

Estafette CI

The estafette-ci-manifest library is part of the Estafette CI system documented at https://estafette.io.

Please file any issues related to Estafette CI at https://github.com/estafette/estafette-ci-central/issues

Estafette-ci-manifest

This library contains the build manifest classes and helpers for the Estafette CI build system.

Development

To start development run

git clone git@github.com:estafette/estafette-ci-manifest.git
cd estafette-ci-manifest

Before committing your changes run

go test
go mod tidy

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Exists

func Exists(manifestPath string) bool

Exists checks whether the .estafette.yaml exists

func OperatingSystemArrayContains added in v0.1.181

func OperatingSystemArrayContains(array []OperatingSystem, search OperatingSystem) bool

OperatingSystemArrayContains checks if an array contains a specific value

Types

type BuilderType added in v0.1.182

type BuilderType string
const (
	BuilderTypeUnknown    BuilderType = ""
	BuilderTypeDocker     BuilderType = "docker"
	BuilderTypeKubernetes BuilderType = "kubernetes"
)

type EstafetteBitbucketEvent added in v0.1.190

type EstafetteBitbucketEvent struct {
	Event         string `yaml:"event,omitempty" json:"event,omitempty"`
	Repository    string `yaml:"repository,omitempty" json:"repository,omitempty"`
	HookUUID      string `yaml:"hookUUID,omitempty" json:"hookUUID,omitempty"`
	RequestUUID   string `yaml:"requestUUID,omitempty" json:"requestUUID,omitempty"`
	AttemptNumber string `yaml:"attemptNumber,omitempty" json:"attemptNumber,omitempty"`
	Payload       string `yaml:"payload,omitempty" json:"payload,omitempty"`
}

EstafetteBitbucketEvent fires for bitbucket events

type EstafetteBitbucketTrigger added in v0.1.190

type EstafetteBitbucketTrigger struct {
	Events     []string `yaml:"events,omitempty" json:"events,omitempty"`
	Repository string   `yaml:"repository,omitempty" json:"repository,omitempty"`
}

EstafetteBitbucketTrigger fires for bitbucket events

func (*EstafetteBitbucketTrigger) Fires added in v0.1.190

Fires indicates whether EstafetteBitbucketTrigger fires for an EstafetteBitbucketEvent

func (*EstafetteBitbucketTrigger) SetDefaults added in v0.1.190

func (p *EstafetteBitbucketTrigger) SetDefaults()

SetDefaults sets defaults for EstafetteBitbucketTrigger

func (*EstafetteBitbucketTrigger) Validate added in v0.1.190

func (p *EstafetteBitbucketTrigger) Validate() (err error)

Validate checks if EstafetteBitbucketTrigger is valid

type EstafetteBot added in v0.1.190

type EstafetteBot struct {
	Name            string              `yaml:"-"`
	Builder         *EstafetteBuilder   `yaml:"builder,omitempty"`
	CloneRepository *bool               `yaml:"clone,omitempty" json:",omitempty"`
	Triggers        []*EstafetteTrigger `yaml:"triggers,omitempty" json:",omitempty"`
	Stages          []*EstafetteStage   `yaml:"-" json:",omitempty"`
}

EstafetteBot allows to respond to any event coming from one of the integrations

func (*EstafetteBot) MarshalYAML added in v0.1.190

func (bot *EstafetteBot) MarshalYAML() (out interface{}, err error)

MarshalYAML customizes marshalling an EstafetteBot

func (*EstafetteBot) UnmarshalYAML added in v0.1.190

func (bot *EstafetteBot) UnmarshalYAML(unmarshal func(interface{}) error) (err error)

UnmarshalYAML customizes unmarshalling an EstafetteBot

type EstafetteBuilder

type EstafetteBuilder struct {
	Track           string          `yaml:"track,omitempty"`
	OperatingSystem OperatingSystem `yaml:"os,omitempty"`
	StorageMedium   StorageMedium   `yaml:"medium,omitempty"`
	BuilderType     BuilderType     `yaml:"type,omitempty"`
}

EstafetteBuilder contains configuration for the ci-builder component

func (*EstafetteBuilder) SetDefaults added in v0.1.118

func (builder *EstafetteBuilder) SetDefaults(preferences EstafetteManifestPreferences)

SetDefaults sets default values for properties of EstafetteBuilder if not defined

func (*EstafetteBuilder) UnmarshalYAML

func (builder *EstafetteBuilder) UnmarshalYAML(unmarshal func(interface{}) error) (err error)

UnmarshalYAML customizes unmarshalling an EstafetteBuilder

type EstafetteCronEvent added in v0.1.92

type EstafetteCronEvent struct {
	Time time.Time `yaml:"time,omitempty" json:"time,omitempty"`
}

EstafetteCronEvent fires at intervals specified by the cron expression

type EstafetteCronTrigger added in v0.1.92

type EstafetteCronTrigger struct {
	Schedule string `yaml:"schedule,omitempty" json:"schedule,omitempty"`
}

EstafetteCronTrigger fires at intervals specified by the cron schedule

func (*EstafetteCronTrigger) Fires added in v0.1.92

Fires indicates whether EstafetteCronTrigger fires for an EstafetteCronEvent

func (*EstafetteCronTrigger) SetDefaults added in v0.1.92

func (c *EstafetteCronTrigger) SetDefaults()

SetDefaults sets defaults for EstafetteCronTrigger

func (*EstafetteCronTrigger) Validate added in v0.1.92

func (c *EstafetteCronTrigger) Validate() (err error)

Validate checks if EstafetteCronTrigger is valid

type EstafetteCustomVersion

type EstafetteCustomVersion struct {
	LabelTemplate string `yaml:"labelTemplate"`
}

EstafetteCustomVersion represents a custom version using a template

func (*EstafetteCustomVersion) Version

Version returns the version number as a string

type EstafetteDockerEvent added in v0.1.92

type EstafetteDockerEvent struct {
	Event string `yaml:"event,omitempty" json:"event,omitempty"`
	Image string `yaml:"image,omitempty" json:"image,omitempty"`
	Tag   string `yaml:"tag,omitempty" json:"tag,omitempty"`
}

EstafetteDockerEvent fires for docker image changes

type EstafetteDockerTrigger added in v0.1.92

type EstafetteDockerTrigger struct {
	Event string `yaml:"event,omitempty" json:"event,omitempty"`
	Image string `yaml:"image,omitempty" json:"image,omitempty"`
	Tag   string `yaml:"tag,omitempty" json:"tag,omitempty"`
}

EstafetteDockerTrigger fires for docker image changes and applies filtering to limit when this results in an action

func (*EstafetteDockerTrigger) Fires added in v0.1.92

Fires indicates whether EstafetteDockerTrigger fires for an EstafetteDockerEvent

func (*EstafetteDockerTrigger) SetDefaults added in v0.1.92

func (d *EstafetteDockerTrigger) SetDefaults()

SetDefaults sets defaults for EstafetteDockerTrigger

func (*EstafetteDockerTrigger) Validate added in v0.1.92

func (d *EstafetteDockerTrigger) Validate() (err error)

Validate checks if EstafetteDockerTrigger is valid

type EstafetteEvent added in v0.1.96

type EstafetteEvent struct {
	Name      string                   `yaml:"name,omitempty" json:"name,omitempty"`
	Fired     bool                     `yaml:"fired,omitempty" json:"fired,omitempty"`
	Pipeline  *EstafettePipelineEvent  `yaml:"pipeline,omitempty" json:"pipeline,omitempty"`
	Release   *EstafetteReleaseEvent   `yaml:"release,omitempty" json:"release,omitempty"`
	Git       *EstafetteGitEvent       `yaml:"git,omitempty" json:"git,omitempty"`
	Docker    *EstafetteDockerEvent    `yaml:"docker,omitempty" json:"docker,omitempty"`
	Cron      *EstafetteCronEvent      `yaml:"cron,omitempty" json:"cron,omitempty"`
	PubSub    *EstafettePubSubEvent    `yaml:"pubsub,omitempty" json:"pubsub,omitempty"`
	Github    *EstafetteGithubEvent    `yaml:"github,omitempty" json:"github,omitempty"`
	Bitbucket *EstafetteBitbucketEvent `yaml:"bitbucket,omitempty" json:"bitbucket,omitempty"`
	Manual    *EstafetteManualEvent    `yaml:"manual,omitempty" json:"manual,omitempty"`
}

EstafetteEvent is a container for any trigger event

type EstafetteGitEvent added in v0.1.92

type EstafetteGitEvent struct {
	Event      string `yaml:"event,omitempty" json:"event,omitempty"`
	Repository string `yaml:"repository,omitempty" json:"repository,omitempty"`
	Branch     string `yaml:"branch,omitempty" json:"branch,omitempty"`
}

EstafetteGitEvent fires for git repository changes

type EstafetteGitTrigger added in v0.1.92

type EstafetteGitTrigger struct {
	Event      string `yaml:"event,omitempty" json:"event,omitempty"`
	Repository string `yaml:"repository,omitempty" json:"repository,omitempty"`
	Branch     string `yaml:"branch,omitempty" json:"branch,omitempty"`
}

EstafetteGitTrigger fires for git repository changes and applies filtering to limit when this results in an action

func (*EstafetteGitTrigger) Fires added in v0.1.92

Fires indicates whether EstafetteGitTrigger fires for an EstafetteGitEvent

func (*EstafetteGitTrigger) SetDefaults added in v0.1.92

func (g *EstafetteGitTrigger) SetDefaults()

SetDefaults sets defaults for EstafetteGitTrigger

func (*EstafetteGitTrigger) Validate added in v0.1.92

func (g *EstafetteGitTrigger) Validate() (err error)

Validate checks if EstafetteGitTrigger is valid

type EstafetteGithubEvent added in v0.1.190

type EstafetteGithubEvent struct {
	Event      string `yaml:"event,omitempty" json:"event,omitempty"`
	Repository string `yaml:"repository,omitempty" json:"repository,omitempty"`
	Delivery   string `yaml:"delivery,omitempty" json:"delivery,omitempty"`
	Payload    string `yaml:"payload,omitempty" json:"payload,omitempty"`
}

EstafetteGithubEvent fires for github events

type EstafetteGithubTrigger added in v0.1.190

type EstafetteGithubTrigger struct {
	Events     []string `yaml:"events,omitempty" json:"events,omitempty"`
	Repository string   `yaml:"repository,omitempty" json:"repository,omitempty"`
}

EstafetteGithubTrigger fires for github events

func (*EstafetteGithubTrigger) Fires added in v0.1.190

Fires indicates whether EstafetteGithubTrigger fires for an EstafetteGithubEvent

func (*EstafetteGithubTrigger) SetDefaults added in v0.1.190

func (p *EstafetteGithubTrigger) SetDefaults()

SetDefaults sets defaults for EstafetteGithubTrigger

func (*EstafetteGithubTrigger) Validate added in v0.1.190

func (p *EstafetteGithubTrigger) Validate() (err error)

Validate checks if EstafetteGithubTrigger is valid

type EstafetteManifest

type EstafetteManifest struct {
	Archived         bool                        `yaml:"archived,omitempty"`
	Builder          EstafetteBuilder            `yaml:"builder,omitempty"`
	Labels           map[string]string           `yaml:"labels,omitempty"`
	Version          EstafetteVersion            `yaml:"version,omitempty"`
	GlobalEnvVars    map[string]string           `yaml:"env,omitempty"`
	Triggers         []*EstafetteTrigger         `yaml:"triggers,omitempty"`
	Stages           []*EstafetteStage           `yaml:"-"`
	Releases         []*EstafetteRelease         `yaml:"-"`
	ReleaseTemplates []*EstafetteReleaseTemplate `yaml:"-"`
	Bots             []*EstafetteBot             `yaml:"-"`
}

EstafetteManifest is the object that the .estafette.yaml deserializes to

func ReadManifest

func ReadManifest(preferences *EstafetteManifestPreferences, manifestString string, validate bool) (manifest EstafetteManifest, err error)

ReadManifest reads the string representation of .estafette.yaml into an EstafetteManifest object

func ReadManifestFromFile

func ReadManifestFromFile(preferences *EstafetteManifestPreferences, manifestPath string, validate bool) (manifest EstafetteManifest, err error)

ReadManifestFromFile reads the .estafette.yaml into an EstafetteManifest object

func (*EstafetteManifest) DeepCopy added in v0.1.160

func (c *EstafetteManifest) DeepCopy() (target EstafetteManifest)

DeepCopy provides a copy of all nested pointers

func (*EstafetteManifest) GetAllTriggers added in v0.1.92

func (c *EstafetteManifest) GetAllTriggers(repoSource, repoOwner, repoName string) []EstafetteTrigger

GetAllTriggers returns both build and release triggers as one list

func (EstafetteManifest) MarshalYAML

func (c EstafetteManifest) MarshalYAML() (out interface{}, err error)

MarshalYAML customizes marshalling an EstafetteManifest

func (*EstafetteManifest) SetDefaults added in v0.1.118

func (c *EstafetteManifest) SetDefaults(preferences EstafetteManifestPreferences)

SetDefaults sets default values for properties of EstafetteManifest if not defined

func (*EstafetteManifest) UnmarshalYAML

func (c *EstafetteManifest) UnmarshalYAML(unmarshal func(interface{}) error) (err error)

UnmarshalYAML customizes unmarshalling an EstafetteManifest

func (*EstafetteManifest) Validate added in v0.1.92

func (c *EstafetteManifest) Validate(preferences EstafetteManifestPreferences) (err error)

Validate checks if the manifest is valid

type EstafetteManifestPreferences added in v0.1.146

type EstafetteManifestPreferences struct {
	LabelRegexes                    map[string]string            `yaml:"labelRegexes,omitempty" json:"labelRegexes,omitempty"`
	BuilderOperatingSystems         []OperatingSystem            `yaml:"builderOperatingSystems,omitempty" json:"builderOperatingSystems,omitempty"`
	BuilderTracksPerOperatingSystem map[OperatingSystem][]string `yaml:"builderTracksPerOperatingSystem,omitempty" json:"builderTracksPerOperatingSystem,omitempty"`
	DefaultBranch                   string                       `yaml:"defaultBranch,omitempty" json:"defaultBranch,omitempty"`
}

EstafetteManifestPreferences is used to configure validation rules for the manifest

func GetDefaultManifestPreferences added in v0.1.146

func GetDefaultManifestPreferences() (preferences *EstafetteManifestPreferences)

GetDefaultManifestPreferences returns default preferences if not configured at the server

func (*EstafetteManifestPreferences) SetDefaults added in v0.1.201

func (p *EstafetteManifestPreferences) SetDefaults()

type EstafetteManualEvent added in v0.1.98

type EstafetteManualEvent struct {
	UserID string `yaml:"userID,omitempty" json:"userID,omitempty"`
}

EstafetteManualEvent fires when a user manually triggers a build or release

type EstafettePipelineEvent added in v0.1.92

type EstafettePipelineEvent struct {
	BuildVersion string `yaml:"buildVersion,omitempty" json:"buildVersion,omitempty"`
	RepoSource   string `yaml:"repoSource,omitempty" json:"repoSource,omitempty"`
	RepoOwner    string `yaml:"repoOwner,omitempty" json:"repoOwner,omitempty"`
	RepoName     string `yaml:"repoName,omitempty" json:"repoName,omitempty"`
	Branch       string `yaml:"repoBranch,omitempty" json:"repoBranch,omitempty"`
	Status       string `yaml:"status,omitempty" json:"status,omitempty"`
	Event        string `yaml:"event,omitempty" json:"event,omitempty"`
}

EstafettePipelineEvent fires for pipeline changes

type EstafettePipelineTrigger added in v0.1.92

type EstafettePipelineTrigger struct {
	Event  string `yaml:"event,omitempty" json:"event,omitempty"`
	Status string `yaml:"status,omitempty" json:"status,omitempty"`
	Name   string `yaml:"name,omitempty" json:"name,omitempty"`
	Branch string `yaml:"branch,omitempty" json:"branch,omitempty"`
}

EstafettePipelineTrigger fires for pipeline changes and applies filtering to limit when this results in an action

func (*EstafettePipelineTrigger) Fires added in v0.1.92

Fires indicates whether EstafettePipelineTrigger fires for an EstafettePipelineEvent

func (*EstafettePipelineTrigger) SetDefaults added in v0.1.92

func (p *EstafettePipelineTrigger) SetDefaults()

SetDefaults sets defaults for EstafettePipelineTrigger

func (*EstafettePipelineTrigger) Validate added in v0.1.92

func (p *EstafettePipelineTrigger) Validate() (err error)

Validate checks if EstafettePipelineTrigger is valid

type EstafettePubSubEvent added in v0.1.112

type EstafettePubSubEvent struct {
	Project string        `yaml:"project,omitempty" json:"project,omitempty"`
	Topic   string        `yaml:"topic,omitempty" json:"topic,omitempty"`
	Message PubsubMessage `yaml:"message,omitempty" json:"message,omitempty"`
}

EstafettePubSubEvent fires when a subscribed pubsub topic receives an event

type EstafettePubSubTrigger added in v0.1.112

type EstafettePubSubTrigger struct {
	Project string `yaml:"project,omitempty" json:"project,omitempty"`
	Topic   string `yaml:"topic,omitempty" json:"topic,omitempty"`
}

EstafettePubSubTrigger fires for pubsub events in a certain project and topic

func (*EstafettePubSubTrigger) Fires added in v0.1.112

Fires indicates whether EstafettePubSubTrigger fires for an EstafettePubSubEvent

func (*EstafettePubSubTrigger) SetDefaults added in v0.1.112

func (p *EstafettePubSubTrigger) SetDefaults()

SetDefaults sets defaults for EstafettePubSubTrigger

func (*EstafettePubSubTrigger) Validate added in v0.1.112

func (p *EstafettePubSubTrigger) Validate() (err error)

Validate checks if EstafettePubSubTrigger is valid

type EstafetteRelease

type EstafetteRelease struct {
	Name            string                    `yaml:"-"`
	Builder         *EstafetteBuilder         `yaml:"builder,omitempty"`
	CloneRepository *bool                     `yaml:"clone,omitempty" json:",omitempty"`
	Actions         []*EstafetteReleaseAction `yaml:"actions,omitempty" json:",omitempty"`
	Triggers        []*EstafetteTrigger       `yaml:"triggers,omitempty" json:",omitempty"`
	Stages          []*EstafetteStage         `yaml:"-" json:",omitempty"`
	Template        string                    `yaml:"template,omitempty"`
}

EstafetteRelease represents a release target that in itself contains one or multiple stages

func (EstafetteRelease) DeepCopy added in v0.1.168

func (release EstafetteRelease) DeepCopy() (target EstafetteRelease)

DeepCopy provides a copy of all nested pointers

func (*EstafetteRelease) InitFromTemplate added in v0.1.168

func (release *EstafetteRelease) InitFromTemplate(releaseTemplates map[string]*EstafetteReleaseTemplate)

InitFromTemplate uses template values for

func (EstafetteRelease) MarshalYAML

func (release EstafetteRelease) MarshalYAML() (out interface{}, err error)

MarshalYAML customizes marshalling an EstafetteManifest

func (*EstafetteRelease) UnmarshalYAML

func (release *EstafetteRelease) UnmarshalYAML(unmarshal func(interface{}) error) (err error)

UnmarshalYAML customizes unmarshalling an EstafetteRelease

type EstafetteReleaseAction

type EstafetteReleaseAction struct {
	Name      string `yaml:"name" json:"name"`
	HideBadge bool   `yaml:"hideBadge,omitempty" json:"hideBadge,omitempty"`
}

EstafetteReleaseAction represents an action on a release target that controls what happens by running the release stage

type EstafetteReleaseEvent added in v0.1.92

type EstafetteReleaseEvent struct {
	ReleaseVersion string `yaml:"releaseVersion,omitempty" json:"releaseVersion,omitempty"`
	RepoSource     string `yaml:"repoSource,omitempty" json:"repoSource,omitempty"`
	RepoOwner      string `yaml:"repoOwner,omitempty" json:"repoOwner,omitempty"`
	RepoName       string `yaml:"repoName,omitempty" json:"repoName,omitempty"`
	Target         string `yaml:"target,omitempty" json:"target,omitempty"`
	Status         string `yaml:"status,omitempty" json:"status,omitempty"`
	Event          string `yaml:"event,omitempty" json:"event,omitempty"`
}

EstafetteReleaseEvent fires for pipeline releases

type EstafetteReleaseTemplate added in v0.1.168

type EstafetteReleaseTemplate struct {
	Name            string                    `yaml:"-"`
	Builder         *EstafetteBuilder         `yaml:"builder,omitempty"`
	CloneRepository *bool                     `yaml:"clone,omitempty" json:",omitempty"`
	Actions         []*EstafetteReleaseAction `yaml:"actions,omitempty" json:",omitempty"`
	Triggers        []*EstafetteTrigger       `yaml:"triggers,omitempty" json:",omitempty"`
	Stages          []*EstafetteStage         `yaml:"-"`
}

EstafetteReleaseTemplate represents a template for a release target

func (EstafetteReleaseTemplate) DeepCopy added in v0.1.168

func (releaseTemplate EstafetteReleaseTemplate) DeepCopy() (target EstafetteReleaseTemplate)

DeepCopy provides a copy of all nested pointers

func (EstafetteReleaseTemplate) MarshalYAML added in v0.1.168

func (releaseTemplate EstafetteReleaseTemplate) MarshalYAML() (out interface{}, err error)

MarshalYAML customizes marshalling an EstafetteManifest

func (*EstafetteReleaseTemplate) UnmarshalYAML added in v0.1.168

func (releaseTemplate *EstafetteReleaseTemplate) UnmarshalYAML(unmarshal func(interface{}) error) (err error)

UnmarshalYAML customizes unmarshalling an EstafetteRelease

type EstafetteReleaseTrigger added in v0.1.92

type EstafetteReleaseTrigger struct {
	Event  string `yaml:"event,omitempty" json:"event,omitempty"`
	Status string `yaml:"status,omitempty" json:"status,omitempty"`
	Name   string `yaml:"name,omitempty" json:"name,omitempty"`
	Target string `yaml:"target,omitempty" json:"target,omitempty"`
}

EstafetteReleaseTrigger fires for pipeline releases and applies filtering to limit when this results in an action

func (*EstafetteReleaseTrigger) Fires added in v0.1.92

Fires indicates whether EstafetteReleaseTrigger fires for an EstafetteReleaseEvent

func (*EstafetteReleaseTrigger) SetDefaults added in v0.1.92

func (r *EstafetteReleaseTrigger) SetDefaults()

SetDefaults sets defaults for EstafetteReleaseTrigger

func (*EstafetteReleaseTrigger) Validate added in v0.1.92

func (r *EstafetteReleaseTrigger) Validate() (err error)

Validate checks if EstafetteReleaseTrigger is valid

type EstafetteSemverVersion

type EstafetteSemverVersion struct {
	Major         int                 `yaml:"major"`
	Minor         int                 `yaml:"minor"`
	Patch         string              `yaml:"patch"`
	LabelTemplate string              `yaml:"labelTemplate"`
	ReleaseBranch StringOrStringArray `yaml:"releaseBranch"`
}

EstafetteSemverVersion represents semantic versioning (http://semver.org/)

func (*EstafetteSemverVersion) GetLabel

GetLabel returns the formatted label

func (*EstafetteSemverVersion) GetPatch

GetPatch returns the formatted patch

func (*EstafetteSemverVersion) GetPatchWithLabel

func (v *EstafetteSemverVersion) GetPatchWithLabel(params EstafetteVersionParams) string

GetPatchWithLabel returns the formatted patch and label

func (*EstafetteSemverVersion) Version

Version returns the version number as a string

type EstafetteService added in v0.1.121

type EstafetteService struct {
	Name                    string                 `yaml:"name,omitempty"`
	ContainerImage          string                 `yaml:"image,omitempty"`
	Shell                   string                 `yaml:"shell,omitempty"`
	Commands                []string               `yaml:"commands,omitempty"`
	RunCommandsInForeground bool                   `yaml:"runCommandsInForeground,omitempty"`
	MultiStage              *bool                  `yaml:"multiStage,omitempty"`
	When                    string                 `yaml:"when,omitempty"`
	EnvVars                 map[string]string      `yaml:"env,omitempty"`
	Readiness               *ReadinessProbe        `yaml:"readiness,omitempty"`
	ReadinessProbe          *ReadinessProbe        `yaml:"readinessProbe,omitempty"`
	CustomProperties        map[string]interface{} `yaml:",inline"`
}

EstafetteService represents a service container to run during a single or multiple stages

func (*EstafetteService) SetDefaults added in v0.1.128

func (service *EstafetteService) SetDefaults(builder EstafetteBuilder, parentStage EstafetteStage)

SetDefaults sets default values for properties of EstafetteService if not defined

func (*EstafetteService) UnmarshalYAML added in v0.1.127

func (service *EstafetteService) UnmarshalYAML(unmarshal func(interface{}) error) (err error)

UnmarshalYAML customizes unmarshalling an EstafetteService

type EstafetteStage

type EstafetteStage struct {
	Name                    string                 `yaml:"-" json:",omitempty"`
	ContainerImage          string                 `yaml:"image,omitempty" json:",omitempty"`
	Shell                   string                 `yaml:"shell,omitempty" json:",omitempty"`
	WorkingDirectory        string                 `yaml:"workDir,omitempty" json:",omitempty"`
	Commands                []string               `yaml:"commands,omitempty" json:",omitempty"`
	RunCommandsInForeground bool                   `yaml:"runCommandsInForeground,omitempty" json:",omitempty"`
	When                    string                 `yaml:"when,omitempty" json:",omitempty"`
	EnvVars                 map[string]string      `yaml:"env,omitempty" json:",omitempty"`
	AutoInjected            bool                   `yaml:"autoInjected,omitempty" json:",omitempty"`
	ParallelStages          []*EstafetteStage      `yaml:"parallelStages,omitempty" json:",omitempty"`
	Services                []*EstafetteService    `yaml:"services,omitempty" json:",omitempty"`
	CustomProperties        map[string]interface{} `yaml:",inline" json:",omitempty"`
}

EstafetteStage represents a stage of a build pipeline or release

func (*EstafetteStage) SetDefaults added in v0.1.118

func (stage *EstafetteStage) SetDefaults(builder EstafetteBuilder)

SetDefaults sets default values for properties of EstafetteStage if not defined

func (*EstafetteStage) UnmarshalYAML

func (stage *EstafetteStage) UnmarshalYAML(unmarshal func(interface{}) error) (err error)

UnmarshalYAML customizes unmarshalling an EstafetteStage

func (*EstafetteStage) Validate added in v0.1.119

func (stage *EstafetteStage) Validate() (err error)

Validate checks whether the stage has valid parameters

type EstafetteTrigger added in v0.1.92

type EstafetteTrigger struct {
	Name      string                     `yaml:"name,omitempty" json:"name,omitempty"`
	Pipeline  *EstafettePipelineTrigger  `yaml:"pipeline,omitempty" json:"pipeline,omitempty"`
	Release   *EstafetteReleaseTrigger   `yaml:"release,omitempty" json:"release,omitempty"`
	Git       *EstafetteGitTrigger       `yaml:"git,omitempty" json:"git,omitempty"`
	Docker    *EstafetteDockerTrigger    `yaml:"docker,omitempty" json:"docker,omitempty"`
	Cron      *EstafetteCronTrigger      `yaml:"cron,omitempty" json:"cron,omitempty"`
	PubSub    *EstafettePubSubTrigger    `yaml:"pubsub,omitempty" json:"pubsub,omitempty"`
	Github    *EstafetteGithubTrigger    `yaml:"github,omitempty" json:"github,omitempty"`
	Bitbucket *EstafetteBitbucketTrigger `yaml:"bitbucket,omitempty" json:"bitbucket,omitempty"`

	BuildAction   *EstafetteTriggerBuildAction   `yaml:"builds,omitempty" json:"builds,omitempty"`
	ReleaseAction *EstafetteTriggerReleaseAction `yaml:"releases,omitempty" json:"releases,omitempty"`
	BotAction     *EstafetteTriggerBotAction     `yaml:"runs,omitempty" json:"runs,omitempty"`
}

EstafetteTrigger represents a trigger of any supported type and what action to take if the trigger fired

func (*EstafetteTrigger) ReplaceSelf added in v0.1.106

func (t *EstafetteTrigger) ReplaceSelf(pipeline string)

ReplaceSelf replaces pipeline names set to "self" with the actual pipeline name

func (*EstafetteTrigger) SetDefaults added in v0.1.92

func (t *EstafetteTrigger) SetDefaults(preferences EstafetteManifestPreferences, triggerType TriggerType, targetName string)

SetDefaults sets defaults for EstafetteTrigger

func (*EstafetteTrigger) Validate added in v0.1.92

func (t *EstafetteTrigger) Validate(triggerType TriggerType, targetName string) (err error)

Validate checks if EstafetteTrigger is valid

type EstafetteTriggerBotAction added in v0.1.190

type EstafetteTriggerBotAction struct {
	Bot    string `yaml:"bot,omitempty" json:"bot,omitempty"`
	Branch string `yaml:"branch,omitempty" json:"branch,omitempty"`
}

func (*EstafetteTriggerBotAction) SetDefaults added in v0.1.190

func (b *EstafetteTriggerBotAction) SetDefaults(preferences EstafetteManifestPreferences, botName string)

SetDefaults sets defaults for EstafetteTriggerReleaseAction

func (*EstafetteTriggerBotAction) Validate added in v0.1.190

func (b *EstafetteTriggerBotAction) Validate() (err error)

Validate checks if EstafetteTriggerBotAction is valid

type EstafetteTriggerBuildAction added in v0.1.92

type EstafetteTriggerBuildAction struct {
	Branch string `yaml:"branch,omitempty" json:"branch,omitempty"`
}

EstafetteTriggerBuildAction determines what builds when the trigger fires

func (*EstafetteTriggerBuildAction) SetDefaults added in v0.1.92

func (b *EstafetteTriggerBuildAction) SetDefaults(preferences EstafetteManifestPreferences)

SetDefaults sets defaults for EstafetteTriggerBuildAction

func (*EstafetteTriggerBuildAction) Validate added in v0.1.92

func (b *EstafetteTriggerBuildAction) Validate() (err error)

Validate checks if EstafetteTriggerBuildAction is valid

type EstafetteTriggerReleaseAction added in v0.1.92

type EstafetteTriggerReleaseAction struct {
	Target  string `yaml:"target,omitempty" json:"target,omitempty"`
	Action  string `yaml:"action,omitempty" json:"action,omitempty"`
	Version string `yaml:"version,omitempty" json:"version,omitempty"`
}

EstafetteTriggerReleaseAction determines what releases when the trigger fires

func (*EstafetteTriggerReleaseAction) SetDefaults added in v0.1.92

func (r *EstafetteTriggerReleaseAction) SetDefaults(t *EstafetteTrigger, targetName string)

SetDefaults sets defaults for EstafetteTriggerReleaseAction

func (*EstafetteTriggerReleaseAction) Validate added in v0.1.92

func (r *EstafetteTriggerReleaseAction) Validate(targetName string) (err error)

Validate checks if EstafetteTriggerReleaseAction is valid

type EstafetteVersion

type EstafetteVersion struct {
	SemVer *EstafetteSemverVersion `yaml:"semver,omitempty" json:",omitempty"`
	Custom *EstafetteCustomVersion `yaml:"custom,omitempty" json:",omitempty"`
}

EstafetteVersion is the object that determines how version numbers are generated

func (*EstafetteVersion) SetDefaults added in v0.1.118

func (version *EstafetteVersion) SetDefaults()

SetDefaults sets default values for properties of EstafetteVersion if not defined

func (*EstafetteVersion) UnmarshalYAML

func (version *EstafetteVersion) UnmarshalYAML(unmarshal func(interface{}) error) (err error)

UnmarshalYAML customizes unmarshalling an EstafetteVersion

func (*EstafetteVersion) Version

func (version *EstafetteVersion) Version(params EstafetteVersionParams) string

Version returns the version number as a string

type EstafetteVersionParams

type EstafetteVersionParams struct {
	AutoIncrement int
	Branch        string
	Revision      string
}

EstafetteVersionParams contains parameters used to generate a version number

func (*EstafetteVersionParams) GetFuncMap

func (p *EstafetteVersionParams) GetFuncMap() template.FuncMap

GetFuncMap returns EstafetteVersionParams as a function map for use in templating

type ExecProbe added in v0.1.197

type ExecProbe struct {
	Command []string `yaml:"command,omitempty"`
}

type HttpGetProbe added in v0.1.197

type HttpGetProbe struct {
	Path   string `yaml:"path,omitempty"`
	Port   int    `yaml:"port,omitempty"`
	Host   string `yaml:"host,omitempty"`
	Scheme string `yaml:"scheme,omitempty"`
}

type OperatingSystem added in v0.1.181

type OperatingSystem string
const (
	OperatingSystemUnknown OperatingSystem = ""
	OperatingSystemLinux   OperatingSystem = "linux"
	OperatingSystemWindows OperatingSystem = "windows"
)

type PubsubMessage added in v0.1.194

type PubsubMessage struct {
	Attributes  map[string]string `json:"attributes,omitempty"`
	Data        string            `json:"data,omitempty"`
	MessageID   string            `json:"messageId,omitempty"`
	PublishTime time.Time         `json:"publishTime,omitempty"`
	OrderingKey string            `json:"orderingKey,omitempty"`
}

PubsubMessage is a container for a pubsub push message

type ReadinessProbe added in v0.1.126

type ReadinessProbe struct {
	HttpGet        *HttpGetProbe `yaml:"httpGet,omitempty"`
	Exec           *ExecProbe    `yaml:"exec,omitempty"`
	TimeoutSeconds int           `yaml:"timeoutSeconds,omitempty"`

	// deprecated
	Path     string `yaml:"path,omitempty"`     // httpGet.path
	Port     int    `yaml:"port,omitempty"`     // httpGet.port
	Protocol string `yaml:"protocol,omitempty"` // httpGet.scheme
	Hostname string `yaml:"hostname,omitempty"` // httpGet.host
}

ReadinessProbe defines an http readiness probe

func (*ReadinessProbe) SetDefaults added in v0.1.128

func (readiness *ReadinessProbe) SetDefaults(serviceName string)

SetDefaults sets default values for properties of EstafetteService if not defined

type StorageMedium added in v0.1.169

type StorageMedium string
const (
	StorageMediumDefault StorageMedium = ""       // use whatever the default is for the node, assume anything we don't explicitly handle is this
	StorageMediumMemory  StorageMedium = "memory" // use memory (e.g. tmpfs on linux)
)

type StringOrStringArray

type StringOrStringArray struct {
	Values []string
}

StringOrStringArray is used to unmarshal/marshal either a single string value or a string array

func (StringOrStringArray) Contains

func (s StringOrStringArray) Contains(value string) bool

Contains test whether the compared value matches one of the values

func (StringOrStringArray) MarshalJSON

func (s StringOrStringArray) MarshalJSON() ([]byte, error)

MarshalJSON customizes marshalling a StringOrStringArray

func (StringOrStringArray) MarshalYAML

func (s StringOrStringArray) MarshalYAML() (out interface{}, err error)

MarshalYAML customizes marshalling a StringOrStringArray

func (*StringOrStringArray) UnmarshalJSON

func (s *StringOrStringArray) UnmarshalJSON(b []byte) error

UnmarshalJSON customizes unmarshalling a StringOrStringArray

func (*StringOrStringArray) UnmarshalYAML

func (s *StringOrStringArray) UnmarshalYAML(unmarshal func(interface{}) error) (err error)

UnmarshalYAML customizes unmarshalling a StringOrStringArray

type TriggerType added in v0.1.190

type TriggerType string
const (
	TriggerTypeUnknown TriggerType = ""
	TriggerTypeBuild   TriggerType = "build"
	TriggerTypeRelease TriggerType = "release"
	TriggerTypeBot     TriggerType = "bot"
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL