Documentation ¶
Index ¶
- Constants
- Variables
- func WriteJenkinsfileStatements(indentCount int, statements []*Statement) string
- type CreateJenkinsfileArguments
- type ImportFile
- type ImportFileResolver
- type Module
- type Modules
- type NamedLifecycle
- type PipelineAgent
- type PipelineConfig
- type PipelineExtends
- type PipelineLifecycle
- type PipelineLifecycleArray
- type PipelineLifecycles
- type PipelineStep
- type Pipelines
- type Statement
- type Writer
Constants ¶
const ( // Name Jenkinsifile name Name = "Jenkinsfile" // BackupSuffix the suffix used by Jenkins for backups BackupSuffix = ".backup" )
const ( // PipelineConfigFileName is the name of the pipeline configuration file PipelineConfigFileName = "pipeline.yaml" // PipelineTemplateFileName defines the jenkisnfile template used to generate the pipeline PipelineTemplateFileName = "Jenkinsfile.tmpl" // PipelineKindRelease represents a release pipeline triggered on merge to master (or a release branch) PipelineKindRelease = "release" // PipelineKindPullRequest represents a Pull Request pipeline PipelineKindPullRequest = "pullrequest" // PipelineKindFeature represents a pipeline on a feature branch PipelineKindFeature = "feature" )
const (
// ModuleFileName the name of the module imports file name
ModuleFileName = "imports.yaml"
)
Variables ¶
var ( // PipelineKinds the possible values of pipeline PipelineKinds = []string{PipelineKindRelease, PipelineKindPullRequest, PipelineKindFeature} )
Functions ¶
func WriteJenkinsfileStatements ¶
WriteJenkinsfileStatements writes the given Jenkinsfile statements as a string
Types ¶
type CreateJenkinsfileArguments ¶
type CreateJenkinsfileArguments struct { ConfigFile string TemplateFile string OutputFile string JenkinsfileRunner bool ClearContainerNames bool }
CreateJenkinsfileArguments contains the arguents to generate a Jenkinsfiles dynamically
func (*CreateJenkinsfileArguments) GenerateJenkinsfile ¶
func (a *CreateJenkinsfileArguments) GenerateJenkinsfile(resolver ImportFileResolver) error
GenerateJenkinsfile generates the jenkinsfile
func (*CreateJenkinsfileArguments) Validate ¶
func (a *CreateJenkinsfileArguments) Validate() error
Validate validates all the arguments are set correctly
type ImportFile ¶
ImportFile represents an import of a file from a module (usually a version of a git repo)
type ImportFileResolver ¶
type ImportFileResolver func(importFile *ImportFile) (string, error)
ImportFileResolver resolves a build pack file resolver strategy
type Module ¶
type Module struct { Name string `yaml:"name,omitempty"` GitURL string `yaml:"gitUrl,omitempty"` GitRef string `yaml:"gitRef,omitempty"` }
Module defines a dependent module for a build pack
type Modules ¶
type Modules struct {
Modules []*Module `yaml:"modules,omitempty"`
}
Modules defines the dependent modules for a build pack
type NamedLifecycle ¶ added in v1.3.836
type NamedLifecycle struct { Name string Lifecycle *PipelineLifecycle }
NamedLifecycle a lifecycle and its name
func (*NamedLifecycle) Groovy ¶ added in v1.3.836
func (l *NamedLifecycle) Groovy() string
Groovy returns the groovy expression for this lifecycle
type PipelineAgent ¶
type PipelineAgent struct { Label string `yaml:"label,omitempty"` Container string `yaml:"container,omitempty"` Dir string `yaml:"dir,omitempty"` }
PipelineAgent contains the agent definition metadata
func (*PipelineAgent) Groovy ¶
func (a *PipelineAgent) Groovy() string
Groovy returns the agent groovy expression for the agent or `any` if its black
type PipelineConfig ¶
type PipelineConfig struct { Extends *PipelineExtends `yaml:"extends,omitempty"` Agent PipelineAgent `yaml:"agent,omitempty"` Environment string `yaml:"environment,omitempty"` Pipelines Pipelines `yaml:"pipelines,omitempty"` }
PipelineConfig defines the pipeline configuration
func LoadPipelineConfig ¶
func LoadPipelineConfig(fileName string, resolver ImportFileResolver, jenkinsfileRunner bool, clearContainer bool) (*PipelineConfig, error)
LoadPipelineConfig returns the pipeline configuration
func (*PipelineConfig) ExtendPipeline ¶
func (c *PipelineConfig) ExtendPipeline(base *PipelineConfig, clearContainer bool) error
ExtendPipeline inherits this pipeline from the given base pipeline
func (*PipelineConfig) IsEmpty ¶
func (c *PipelineConfig) IsEmpty() bool
IsEmpty returns true if this configuration is empty
func (*PipelineConfig) SaveConfig ¶
func (c *PipelineConfig) SaveConfig(fileName string) error
SaveConfig saves the configuration file to the given project directory
type PipelineExtends ¶
type PipelineExtends struct { Import string `yaml:"import,omitempty"` File string `yaml:"file,omitempty"` }
PipelineExtends defines the extension (e.g. parent pipeline which is overloaded
func (*PipelineExtends) ImportFile ¶
func (x *PipelineExtends) ImportFile() *ImportFile
ImportFile returns an ImportFile for the given extension
type PipelineLifecycle ¶
type PipelineLifecycle struct { Steps []*PipelineStep `yaml:"steps,omitempty"` // PreSteps if using inheritance then invoke these steps before the base steps PreSteps []*PipelineStep `yaml:"preSteps,omitempty"` // Replace if using inheritence then replace steps from the base pipeline Replace bool `yaml:"replace,omitempty"` }
PipelineLifecycle defines the steps of a lifecycle section
func ExtendLifecycle ¶
func ExtendLifecycle(parent *PipelineLifecycle, base *PipelineLifecycle) *PipelineLifecycle
ExtendLifecycle extends the lifecycle with the inherited base lifecycle
func (*PipelineLifecycle) Groovy ¶
func (l *PipelineLifecycle) Groovy() string
Groovy returns the groovy expression for this lifecycle
func (*PipelineLifecycle) RemoveWhenStatements ¶
func (l *PipelineLifecycle) RemoveWhenStatements(prow bool)
RemoveWhenStatements removes any when conditions
func (*PipelineLifecycle) ToJenkinsfileStatements ¶
func (l *PipelineLifecycle) ToJenkinsfileStatements() []*Statement
ToJenkinsfileStatements converts the lifecycle to one or more jenkinsfile statements
type PipelineLifecycleArray ¶
type PipelineLifecycleArray []NamedLifecycle
PipelineLifecycleArray an array of named lifecycle pointers
func (PipelineLifecycleArray) Groovy ¶
func (s PipelineLifecycleArray) Groovy() string
Groovy returns the groovy string for the lifecycles
type PipelineLifecycles ¶
type PipelineLifecycles struct { Setup *PipelineLifecycle `yaml:"setup,omitempty"` SetVersion *PipelineLifecycle `yaml:"setVersion,omitempty"` PreBuild *PipelineLifecycle `yaml:"preBuild,omitempty"` Build *PipelineLifecycle `yaml:"build,omitempty"` PostBuild *PipelineLifecycle `yaml:"postBuild,omitempty"` Promote *PipelineLifecycle `yaml:"promote,omitempty"` Pipeline *syntax.PipelineStructure `yaml:"pipeline,omitempty"` }
PipelineLifecycles defines the steps of a lifecycle section
func ExtendPipelines ¶
func ExtendPipelines(parent *PipelineLifecycles, base *PipelineLifecycles) *PipelineLifecycles
ExtendPipelines extends the parent lifecycle with the base
func (*PipelineLifecycles) All ¶
func (a *PipelineLifecycles) All() PipelineLifecycleArray
All returns all lifecycles in order
func (*PipelineLifecycles) AllButPromote ¶
func (a *PipelineLifecycles) AllButPromote() PipelineLifecycleArray
AllButPromote returns all lifecycles but promote
func (*PipelineLifecycles) Groovy ¶
func (a *PipelineLifecycles) Groovy() string
Groovy returns the groovy expression for all of the lifecycles
func (*PipelineLifecycles) RemoveWhenStatements ¶
func (a *PipelineLifecycles) RemoveWhenStatements(prow bool)
RemoveWhenStatements removes any when conditions
type PipelineStep ¶
type PipelineStep struct { Name string `yaml:"name,omitempty"` Comment string `yaml:"comment,omitempty"` Container string `yaml:"container,omitempty"` Dir string `yaml:"dir,omitempty"` Command string `yaml:"sh,omitempty"` Groovy string `yaml:"groovy,omitempty"` Steps []*PipelineStep `yaml:"steps,omitempty"` When string `yaml:"when,omitempty"` }
PipelineStep defines an individual step in a pipeline, either a command (sh) or groovy block
func (*PipelineStep) GroovyBlock ¶
func (s *PipelineStep) GroovyBlock(parentIndent string) string
GroovyBlock returns the groovy expression for this step
func (*PipelineStep) ToJenkinsfileStatements ¶
func (s *PipelineStep) ToJenkinsfileStatements() []*Statement
ToJenkinsfileStatements converts the step to one or more jenkinsfile statements
type Pipelines ¶
type Pipelines struct { PullRequest *PipelineLifecycles `yaml:"pullRequest,omitempty"` Release *PipelineLifecycles `yaml:"release,omitempty"` Feature *PipelineLifecycles `yaml:"feature,omitempty"` Post *PipelineLifecycle `yaml:"post,omitempty"` }
Pipelines contains all the different kinds of pipeline for diferent branches
func (*Pipelines) All ¶
func (p *Pipelines) All() []*PipelineLifecycles
All returns all the lifecycles in this pipeline, some may be null
func (*Pipelines) RemoveWhenStatements ¶
RemoveWhenStatements removes any prow or !prow statements
type Statement ¶
Statement represents a statement in a Jenkinsfile
func (*Statement) ContextEquals ¶
ContextEquals returns true if this statement is a context statement and it equals the same context as that statement