jenkinsfile

package
v1.3.596 Latest Latest
Warning

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

Go to latest
Published: Nov 27, 2018 License: Apache-2.0 Imports: 13 Imported by: 1

Documentation

Index

Constants

View Source
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"
)
View Source
const (
	// ModuleFileName the name of the module imports file name
	ModuleFileName = "imports.yaml"
)

Variables

This section is empty.

Functions

func InitBuildPack added in v1.3.581

func InitBuildPack(gitter gits.Gitter, packURL string, packRef string) (string, error)

InitBuildPack initialises the build pack URL and git ref returning the packs dir or an error

func WriteJenkinsfileStatements

func WriteJenkinsfileStatements(indentCount int, statements []*Statement) string

WriteJenkinsfileStatements writes the given Jenkinsfile statements as a string

Types

type CreateJenkinsfileArguments

type CreateJenkinsfileArguments struct {
	ConfigFile        string
	TemplateFile      string
	OutputFile        string
	JenkinsfileRunner 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

type ImportFile struct {
	Import string
	File   string
}

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

func (*Module) Resolve added in v1.3.581

func (m *Module) Resolve(gitter gits.Gitter) (*ModuleResolver, error)

Resolve resolves this module to a directory

func (*Module) Validate

func (m *Module) Validate() error

Validate returns an error if any data is missing

type ModuleResolver added in v1.3.581

type ModuleResolver struct {
	Module   *Module
	PacksDir string
}

ModuleResolver a resolver for a single module

type Modules

type Modules struct {
	Modules []*Module `yaml:"modules,omitempty"`
}

Modules defines the dependent modules for a build pack

func LoadModules added in v1.3.581

func LoadModules(dir string) (*Modules, error)

LoadModules loads the modules in the given build pack directory if there are any

func (*Modules) Resolve added in v1.3.581

func (m *Modules) Resolve(gitter gits.Gitter) (*ModulesResolver, error)

Resolve Resolve the modules into a module resolver

type ModulesResolver added in v1.3.581

type ModulesResolver struct {
	Modules map[string]*ModuleResolver
}

ModulesResolver resolves a number of modules into a structure we can use to resolve imports

func (*ModulesResolver) AsImportResolver added in v1.3.581

func (m *ModulesResolver) AsImportResolver() ImportFileResolver

AsImportResolver returns an ImportFileResolver for these modules

func (*ModulesResolver) ResolveImport added in v1.3.581

func (m *ModulesResolver) ResolveImport(importFile *ImportFile) (string, error)

ResolveImport resolves an import relative to the local git clone of the import

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) (*PipelineConfig, error)

LoadPipelineConfig returns the pipeline configuration

func (*PipelineConfig) ExtendPipeline

func (c *PipelineConfig) ExtendPipeline(base *PipelineConfig, jenkinsfileRunner 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 []*PipelineLifecycle

PipelineLifecycleArray an array of 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"`
}

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

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 {
	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) Extend

func (p *Pipelines) Extend(base *Pipelines) error

Extend extends these pipelines with the base pipeline

func (*Pipelines) RemoveWhenStatements

func (p *Pipelines) RemoveWhenStatements(prow bool)

RemoveWhenStatements removes any prow or !prow statements

type Statement

type Statement struct {
	Function  string
	Arguments []string
	Statement string
	Children  []*Statement
}

Statement represents a statement in a Jenkinsfile

func (*Statement) ContextEquals

func (s *Statement) ContextEquals(that *Statement) bool

ContextEquals returns true if this statement is a context statement and it equals the same context as that statement

func (*Statement) Text

func (s *Statement) Text() string

Text returns the text line of the current function or statement

type Writer

type Writer struct {
	InitialIndent string
	IndentText    string
	Buffer        bytes.Buffer
	IndentCount   int
}

Writer implements the struct for Jenkinsfilewriter

func NewWriter

func NewWriter(indentCount int) *Writer

NewWriter creates a Jenkinsfile writer

func (*Writer) String

func (w *Writer) String() string

String returns the string value of this writer

func (*Writer) Write

func (w *Writer) Write(inputStatements []*Statement)

Jump to

Keyboard shortcuts

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