Documentation
¶
Index ¶
- Constants
- Variables
- func EmptyEnv() *util.Environment
- func GenerateBaseKey(options *PipelineOptions) string
- func IsBuildID(input string) bool
- func NewEmitterContext(ctx context.Context) context.Context
- func ParseApplicationID(input string) (username, name string, err error)
- func ReadWerckerYaml(searchDirs []string, allowDefault bool) ([]byte, error)
- type AWSOptions
- type AmazonAuth
- type Artifact
- type Authenticatable
- type AzureAuth
- type BasePipeline
- func (p *BasePipeline) AfterSteps() []Step
- func (p *BasePipeline) Box() Box
- func (p *BasePipeline) CommonEnv() [][]string
- func (p *BasePipeline) Env() *util.Environment
- func (p *BasePipeline) ExportEnvironment(sessionCtx context.Context, sess *Session) error
- func (p *BasePipeline) LogEnvironment()
- func (p *BasePipeline) Services() []ServiceBox
- func (p *BasePipeline) SetupGuest(sessionCtx context.Context, sess *Session) error
- func (p *BasePipeline) Steps() []Step
- func (p *BasePipeline) SyncEnvironment(sessionCtx context.Context, sess *Session) error
- type BasePipelineOptions
- type BaseStep
- func (s *BaseStep) Checkpoint() string
- func (s *BaseStep) Cwd() string
- func (s *BaseStep) DisplayName() string
- func (s *BaseStep) Env() *util.Environment
- func (s *BaseStep) ID() string
- func (s *BaseStep) Name() string
- func (s *BaseStep) Owner() string
- func (s *BaseStep) SafeID() string
- func (s *BaseStep) Version() string
- type BaseStepOptions
- type Box
- type BoxConfig
- type BoxOptions
- type BuildFinishedArgs
- type BuildStartedArgs
- type BuildStepFinishedArgs
- type BuildStepStartedArgs
- type BuildStepsAddedArgs
- type CommandResult
- type Config
- type DebugHandler
- type DetectOptions
- type DockerAuth
- type ExternalStep
- func (s *ExternalStep) CachedName() string
- func (s *ExternalStep) CollectArtifact(containerID string) (*Artifact, error)
- func (s *ExternalStep) CollectFile(containerID, path, name string, dst io.Writer) error
- func (s *ExternalStep) Execute(sessionCtx context.Context, sess *Session) (int, error)
- func (s *ExternalStep) Fetch() (string, error)
- func (s *ExternalStep) FetchScript() (string, error)
- func (s *ExternalStep) GuestPath(p ...string) string
- func (s *ExternalStep) HostPath(p ...string) string
- func (s *ExternalStep) InitEnv(env *util.Environment)
- func (s *ExternalStep) IsScript() bool
- func (s *ExternalStep) LocalSymlink()
- func (s *ExternalStep) MntPath(p ...string) string
- func (s *ExternalStep) ReportPath(p ...string) string
- func (s *ExternalStep) SetupGuest(sessionCtx context.Context, sess *Session) error
- func (s *ExternalStep) ShouldSyncEnv() bool
- type FileCollector
- type FullPipelineFinishedArgs
- type GitOptions
- type GlobalOptions
- type InspectOptions
- type KeenOptions
- type LoginOptions
- type LogoutOptions
- type LogsArgs
- type NormalizedEmitter
- type Pipeline
- type PipelineConfig
- type PipelineDefaultsUsed
- type PipelineOptions
- func EmptyPipelineOptions() *PipelineOptions
- func NewBuildOptions(c util.Settings, e *util.Environment) (*PipelineOptions, error)
- func NewCheckConfigOptions(c util.Settings, e *util.Environment) (*PipelineOptions, error)
- func NewDeployOptions(c util.Settings, e *util.Environment) (*PipelineOptions, error)
- func NewDevOptions(c util.Settings, e *util.Environment) (*PipelineOptions, error)
- func NewPipelineOptions(c util.Settings, e *util.Environment) (*PipelineOptions, error)
- func (o *PipelineOptions) BasePath() string
- func (o *PipelineOptions) BuildPath(s ...string) string
- func (o *PipelineOptions) CachePath() string
- func (o *PipelineOptions) ContainerPath() string
- func (o *PipelineOptions) GuestPath(s ...string) string
- func (o *PipelineOptions) HostPath(s ...string) string
- func (o *PipelineOptions) IgnoreFilePath() string
- func (o *PipelineOptions) MntPath(s ...string) string
- func (o *PipelineOptions) ProjectDownloadPath() string
- func (o *PipelineOptions) ReportPath(s ...string) string
- func (o *PipelineOptions) SourcePath() string
- func (o *PipelineOptions) StepPath() string
- func (o *PipelineOptions) WorkflowURL() string
- func (o *PipelineOptions) WorkingPath(s ...string) string
- type PipelineResult
- type PullOptions
- type RawBoxConfig
- type RawConfig
- type RawPipelineConfig
- type RawStepConfig
- type RawStepsConfig
- type Receiver
- type ReporterOptions
- type S3Store
- type Sender
- type ServiceBox
- type Session
- func (s *Session) Attach(runnerCtx context.Context) (context.Context, error)
- func (s *Session) HideLogs()
- func (s *Session) Recv() chan string
- func (s *Session) Send(sessionCtx context.Context, forceHidden bool, commands ...string) error
- func (s *Session) SendChecked(sessionCtx context.Context, commands ...string) (int, []string, error)
- func (s *Session) ShowLogs()
- func (s *Session) Transport() interface{}
- type Step
- type StepConfig
- type StepDesc
- type StepDescProperty
- type Store
- type StoreFromFileArgs
- type Transport
- type VersionOptions
Constants ¶
const ( // Logs is the event when wercker generate logs Logs = "Logs" // BuildStarted is the event when wercker has started a build. BuildStarted = "BuildStarted" // BuildFinished occures when a pipeline finishes the main phase. It is // possible that after-steps are run after this event. BuildFinished = "BuildFinished" // BuildStepsAdded is the event when wercker has parsed the wercker.yml and // has valdiated that the steps exist. BuildStepsAdded = "BuildStepsAdded" // BuildStepStarted is the event when wercker has started a new buildstep. BuildStepStarted = "BuildStepStarted" // BuildStepFinished is the event when wercker has finished a buildstep. BuildStepFinished = "BuildStepFinished" // FullPipelineFinished occurs when a pipeline finishes all it's steps, // included after-steps. FullPipelineFinished = "FullPipelineFinished" )
Variables ¶
var (
DEFAULT_BASE_URL = "https://app.wercker.com"
)
Functions ¶
func EmptyEnv ¶
func EmptyEnv() *util.Environment
func GenerateBaseKey ¶
func GenerateBaseKey(options *PipelineOptions) string
GenerateBaseKey generates the base key based on ApplicationID and either DeployID or BuilID
func IsBuildID ¶
IsBuildID checks if input is a BuildID. BuildID is defined as a 24 character hex string.
func NewEmitterContext ¶
NewEmitterContext gives us a new context with an emitter
func ParseApplicationID ¶
ParseApplicationID parses input and returns the username and application name. A valid application ID is two strings separated by a /.
Types ¶
type AWSOptions ¶
type AWSOptions struct {
*GlobalOptions
AWSAccessKeyID string
AWSSecretAccessKey string
AWSRegion string
S3Bucket string
S3PartSize int64
}
AWSOptions for our artifact storage
func NewAWSOptions ¶
func NewAWSOptions(c util.Settings, e *util.Environment, globalOpts *GlobalOptions) (*AWSOptions, error)
NewAWSOptions constructor
type AmazonAuth ¶
type AmazonAuth struct {
AWSRegion string `yaml:"aws-region"`
AWSSecretKey string `yaml:"aws-secret-key"`
AWSAccessKey string `yaml:"aws-access-key"`
AWSRegistryID string `yaml:"aws-registry-id"`
AWSStrictAuth bool `yaml:"aws-strict-auth"`
}
func (AmazonAuth) ToAuthenticator ¶
func (a AmazonAuth) ToAuthenticator(env *util.Environment) (auth.Authenticator, error)
type Artifact ¶
type Artifact struct {
ContainerID string
GuestPath string
HostTarPath string
HostPath string
ApplicationID string
RunID string
RunStepID string
Bucket string
Key string
ContentType string
Meta map[string]*string
}
Artifact holds the information required to extract a folder from a container and eventually upload it to S3.
func (*Artifact) RemotePath ¶
RemotePath returns the S3 path for an artifact
type Authenticatable ¶
type Authenticatable interface {
ToAuthenticator(*util.Environment) (auth.Authenticator, error)
}
type AzureAuth ¶
type AzureAuth struct {
AzureClientID string `yaml:"azure-client-id"`
AzureClientSecret string `yaml:"azure-client-secret"`
AzureSubscriptionID string `yaml:"azure-subscription-id"`
AzureTenantID string `yaml:"azure-tenant-id"`
AzureResourceGroupName string `yaml:"azure-resource-group"`
AzureRegistryName string `yaml:"azure-registry-name"`
AzureLoginServer string `yaml:"azure-login-server"`
}
func (AzureAuth) ToAuthenticator ¶
func (a AzureAuth) ToAuthenticator(env *util.Environment) (auth.Authenticator, error)
type BasePipeline ¶
type BasePipeline struct {
// contains filtered or unexported fields
}
BasePipeline is the base class for Build and Deploy
func NewBasePipeline ¶
func NewBasePipeline(args BasePipelineOptions) *BasePipeline
func (*BasePipeline) AfterSteps ¶
func (p *BasePipeline) AfterSteps() []Step
AfterSteps is a getter for afterSteps
func (*BasePipeline) CommonEnv ¶
func (p *BasePipeline) CommonEnv() [][]string
CommonEnv is shared by both builds and deploys
func (*BasePipeline) ExportEnvironment ¶
func (p *BasePipeline) ExportEnvironment(sessionCtx context.Context, sess *Session) error
ExportEnvironment to the session
func (*BasePipeline) LogEnvironment ¶
func (p *BasePipeline) LogEnvironment()
LogEnvironment dumps the base environment
func (*BasePipeline) Services ¶
func (p *BasePipeline) Services() []ServiceBox
Services is a getter for the Services
func (*BasePipeline) SetupGuest ¶
func (p *BasePipeline) SetupGuest(sessionCtx context.Context, sess *Session) error
SetupGuest ensures that the guest is prepared to run the pipeline.
func (*BasePipeline) SyncEnvironment ¶
func (p *BasePipeline) SyncEnvironment(sessionCtx context.Context, sess *Session) error
SyncEnvironment fetches the current environment from sess, and merges the result with p.env. This requires the `env` command to be available on the container.
type BasePipelineOptions ¶
type BasePipelineOptions struct {
Options *PipelineOptions
Config *PipelineConfig
Env *util.Environment
Box Box
Services []ServiceBox
Steps []Step
AfterSteps []Step
Logger *util.LogEntry
}
type BaseStep ¶
type BaseStep struct {
// contains filtered or unexported fields
}
BaseStep type for extending
func NewBaseStep ¶
func NewBaseStep(args BaseStepOptions) *BaseStep
type BaseStepOptions ¶
type BaseStepOptions struct {
DisplayName string
Env *util.Environment
ID string
Name string
Owner string
SafeID string
Version string
Cwd string
Checkpoint string
}
BaseStepOptions are exported fields so that we can make a BaseStep from other packages, see: https://gist.github.com/termie/8b66a2b4206e8e042766
type Box ¶
type Box interface {
GetName() string
GetTag() string
Repository() string
Clean() error
Stop()
Commit(string, string, string, bool) (*docker.Image, error)
Restart() (*docker.Container, error)
AddService(ServiceBox)
Fetch(context.Context, *util.Environment) (*docker.Image, error)
Run(context.Context, *util.Environment) (*docker.Container, error)
RecoverInteractive(string, Pipeline, Step) error
}
type BoxConfig ¶
type BoxConfig struct {
ID string
Name string
Tag string
Cmd string
Env map[string]string
Ports []string
Username string
Password string
Registry string
Entrypoint string
URL string
Volumes string
Auth Authenticatable
}
BoxConfig is the type for boxes in the config
func (*BoxConfig) IsExternal ¶
IsExternal tells us if the box (service) is located on disk
type BuildFinishedArgs ¶
type BuildFinishedArgs struct {
Box Box
Options *PipelineOptions
Result string
}
BuildFinishedArgs contains the args associated with the "BuildFinished" event.
type BuildStartedArgs ¶
type BuildStartedArgs struct {
Options *PipelineOptions
}
BuildStartedArgs contains the args associated with the "BuildStarted" event.
type BuildStepFinishedArgs ¶
type BuildStepFinishedArgs struct {
Options *PipelineOptions
Box Box
Build Pipeline
Order int
Step Step
Successful bool
Message string
ArtifactURL string
// Only applicable to the store step
PackageURL string
// Only applicable to the setup environment step
WerckerYamlContents string
}
BuildStepFinishedArgs contains the args associated with the "BuildStepFinished" event.
type BuildStepStartedArgs ¶
type BuildStepStartedArgs struct {
Options *PipelineOptions
Box Box
Build Pipeline
Order int
Step Step
}
BuildStepStartedArgs contains the args associated with the "BuildStepStarted" event.
type BuildStepsAddedArgs ¶
type BuildStepsAddedArgs struct {
Build Pipeline
Options *PipelineOptions
Steps []Step
StoreStep Step
AfterSteps []Step
}
BuildStepsAddedArgs contains the args associated with the "BuildStepsAdded" event.
type CommandResult ¶
type CommandResult struct {
// contains filtered or unexported fields
}
CommandResult exists so that we can make a channel of them
type Config ¶
type Config struct {
Box *RawBoxConfig `yaml:"box"`
CommandTimeout int `yaml:"command-timeout"`
NoResponseTimeout int `yaml:"no-response-timeout"`
Services []*RawBoxConfig `yaml:"services"`
SourceDir string `yaml:"source-dir"`
IgnoreFile string `yaml:"ignore-file"`
PipelinesMap map[string]*RawPipelineConfig
}
Config is the data type for wercker.yml
func ConfigFromYaml ¶
ConfigFromYaml reads a []byte as yaml and turn it into a Config object
type DebugHandler ¶
type DebugHandler struct {
// contains filtered or unexported fields
}
DebugHandler dumps events
func (*DebugHandler) Handler ¶
func (h *DebugHandler) Handler(name string) func(interface{})
Handler returns a per-event dumpEvent
func (*DebugHandler) ListenTo ¶
func (h *DebugHandler) ListenTo(e *NormalizedEmitter)
ListenTo attaches to the emitter
type DetectOptions ¶
type DetectOptions struct {
*GlobalOptions
}
DetectOptions for detect command
func NewDetectOptions ¶
func NewDetectOptions(c util.Settings, e *util.Environment) (*DetectOptions, error)
NewDetectOptions constructor
type DockerAuth ¶
func (DockerAuth) ToAuthenticator ¶
func (d DockerAuth) ToAuthenticator(env *util.Environment) (auth.Authenticator, error)
type ExternalStep ¶
type ExternalStep struct {
*BaseStep
// contains filtered or unexported fields
}
ExternalStep is the holder of the Step methods.
func NewStep ¶
func NewStep(stepConfig *StepConfig, options *PipelineOptions) (*ExternalStep, error)
NewStep sets up the basic parts of a Step. Step names can come in a couple forms (x means currently supported):
x setup-go-environment (fetches from api) x wercker/hipchat-notify (fetches from api) x wercker/hipchat-notify "http://someurl/thingee.tar" (downloads tarball) x setup-go-environment "file:///some_path" (uses local path)
func NewWerckerInitStep ¶
func NewWerckerInitStep(options *PipelineOptions) (*ExternalStep, error)
NewWerckerInitStep returns our fake initial step
func (*ExternalStep) CachedName ¶
func (s *ExternalStep) CachedName() string
CachedName returns a name suitable for caching
func (*ExternalStep) CollectArtifact ¶
func (s *ExternalStep) CollectArtifact(containerID string) (*Artifact, error)
CollectArtifact noop
func (*ExternalStep) CollectFile ¶
func (s *ExternalStep) CollectFile(containerID, path, name string, dst io.Writer) error
CollectFile noop
func (*ExternalStep) Fetch ¶
func (s *ExternalStep) Fetch() (string, error)
Fetch grabs the Step content (or calls FetchScript for script steps).
func (*ExternalStep) FetchScript ¶
func (s *ExternalStep) FetchScript() (string, error)
FetchScript turns the raw code in a step into a shell file.
func (*ExternalStep) GuestPath ¶
func (s *ExternalStep) GuestPath(p ...string) string
GuestPath returns a path relative to the Step on the guest.
func (*ExternalStep) HostPath ¶
func (s *ExternalStep) HostPath(p ...string) string
HostPath returns a path relative to the Step on the host.
func (*ExternalStep) InitEnv ¶
func (s *ExternalStep) InitEnv(env *util.Environment)
InitEnv sets up the internal environment for the Step.
func (*ExternalStep) IsScript ¶
func (s *ExternalStep) IsScript() bool
IsScript should probably not be exported.
func (*ExternalStep) LocalSymlink ¶
func (s *ExternalStep) LocalSymlink()
LocalSymlink makes sure we have an easy to use local symlink
func (*ExternalStep) MntPath ¶
func (s *ExternalStep) MntPath(p ...string) string
MntPath returns a path relative to the read-only mount of the Step on the guest.
func (*ExternalStep) ReportPath ¶
func (s *ExternalStep) ReportPath(p ...string) string
ReportPath returns a path to the reports for the step on the guest.
func (*ExternalStep) SetupGuest ¶
func (s *ExternalStep) SetupGuest(sessionCtx context.Context, sess *Session) error
SetupGuest ensures that the guest is ready to run a Step.
func (*ExternalStep) ShouldSyncEnv ¶
func (s *ExternalStep) ShouldSyncEnv() bool
ShouldSyncEnv before this step, default FALSE
type FileCollector ¶
FileCollector gets files out of containers
type FullPipelineFinishedArgs ¶
type FullPipelineFinishedArgs struct {
Options *PipelineOptions
MainSuccessful bool
RanAfterSteps bool
AfterStepSuccessful bool
}
FullPipelineFinishedArgs contains the args associated with the "FullPipelineFinished" event.
type GitOptions ¶
type GitOptions struct {
*GlobalOptions
GitBranch string
GitCommit string
GitDomain string
GitOwner string
GitRepository string
}
GitOptions for the users, mostly
func NewGitOptions ¶
func NewGitOptions(c util.Settings, e *util.Environment, globalOpts *GlobalOptions) (*GitOptions, error)
NewGitOptions constructor
type GlobalOptions ¶
type GlobalOptions struct {
BaseURL string
Debug bool
Journal bool
Verbose bool
ShowColors bool
// Auth
AuthToken string
AuthTokenStore string
}
GlobalOptions applicable to everything
func NewGlobalOptions ¶
func NewGlobalOptions(c util.Settings, e *util.Environment) (*GlobalOptions, error)
NewGlobalOptions constructor
type InspectOptions ¶
type InspectOptions struct {
*PipelineOptions
}
InspectOptions for inspect command
func NewInspectOptions ¶
func NewInspectOptions(c util.Settings, e *util.Environment) (*InspectOptions, error)
NewInspectOptions constructor
type KeenOptions ¶
type KeenOptions struct {
*GlobalOptions
KeenProjectID string
KeenProjectWriteKey string
ShouldKeenMetrics bool
}
KeenOptions for our metrics
func NewKeenOptions ¶
func NewKeenOptions(c util.Settings, e *util.Environment, globalOpts *GlobalOptions) (*KeenOptions, error)
NewKeenOptions constructor
type LoginOptions ¶
type LoginOptions struct {
*GlobalOptions
}
LoginOptions for the login command
func NewLoginOptions ¶
func NewLoginOptions(c util.Settings, e *util.Environment) (*LoginOptions, error)
NewLoginOptions constructor
type LogoutOptions ¶
type LogoutOptions struct {
*GlobalOptions
}
LogoutOptions for the login command
func NewLogoutOptions ¶
func NewLogoutOptions(c util.Settings, e *util.Environment) (*LogoutOptions, error)
NewLogoutOptions constructor
type LogsArgs ¶
type LogsArgs struct {
Build Pipeline
Options *PipelineOptions
Order int
Step Step
Logs string
Stream string
Hidden bool
}
LogsArgs contains the args associated with the "Logs" event.
type NormalizedEmitter ¶
NormalizedEmitter wraps the emission.Emitter and is smart enough about our events to fill in details as needed so that we don't need so many args
func EmitterFromContext ¶
func EmitterFromContext(ctx context.Context) (e *NormalizedEmitter, err error)
EmitterFromContext gives us the emitter attached to the context
func NewNormalizedEmitter ¶
func NewNormalizedEmitter() *NormalizedEmitter
NewNormalizedEmitter constructor
func (*NormalizedEmitter) Emit ¶
func (e *NormalizedEmitter) Emit(event interface{}, args interface{})
Emit normalizes our events by storing some state
type Pipeline ¶
type Pipeline interface {
// Getters
Env() *util.Environment // base
Box() Box // base
Services() []ServiceBox //base
Steps() []Step // base
AfterSteps() []Step // base
// Methods
CommonEnv() [][]string // base
InitEnv(*util.Environment) // impl
CollectArtifact(string) (*Artifact, error)
CollectCache(string) error
LocalSymlink()
SetupGuest(context.Context, *Session) error
ExportEnvironment(context.Context, *Session) error
SyncEnvironment(context.Context, *Session) error
LogEnvironment()
DockerRepo() string
DockerTag() string
DockerMessage() string
}
Pipeline is a set of steps to run, this is the interface shared by both Build and Deploy
type PipelineConfig ¶
type PipelineConfig struct {
Box *RawBoxConfig
Steps RawStepsConfig
AfterSteps RawStepsConfig `yaml:"after-steps"`
StepsMap map[string][]*RawStepConfig
Services []*RawBoxConfig `yaml:"services"`
BasePath string `yaml:"base-path"`
}
PipelineConfig is for any pipeline sections StepsMap is for compat with the multiple deploy target configs TODO(termie): it would be great to deprecate this behavior and switch
to multiple pipelines instead
type PipelineDefaultsUsed ¶
type PipelineDefaultsUsed struct {
IgnoreFile bool
}
type PipelineOptions ¶
type PipelineOptions struct {
*GlobalOptions
*AWSOptions
// *DockerOptions
*GitOptions
*KeenOptions
*ReporterOptions
// TODO(termie): i'd like to remove this, it is only used in a couple
// places by BasePipeline
HostEnv *util.Environment
RunID string
DeployTarget string
Pipeline string
ApplicationID string
ApplicationName string
ApplicationOwnerName string
ApplicationStartedByName string
WerckerContainerRegistry *url.URL
ShouldCommit bool
Repository string
Tag string
Message string
ShouldStoreS3 bool
WorkingDir string
GuestRoot string
MntRoot string
ReportRoot string
// will be set by pipeline when it initializes
PipelineBasePath string
ProjectID string
ProjectURL string
ProjectPath string
CommandTimeout int
NoResponseTimeout int
ShouldArtifacts bool
ShouldRemove bool
SourceDir string
IgnoreFile string
AttachOnError bool
DirectMount bool
EnableDevSteps bool
PublishPorts []string
ExposePorts bool
EnableVolumes bool
WerckerYml string
Checkpoint string
DefaultsUsed PipelineDefaultsUsed
}
PipelineOptions for builds and deploys
func EmptyPipelineOptions ¶
func EmptyPipelineOptions() *PipelineOptions
func NewBuildOptions ¶
func NewBuildOptions(c util.Settings, e *util.Environment) (*PipelineOptions, error)
NewBuildOptions constructor
func NewCheckConfigOptions ¶
func NewCheckConfigOptions(c util.Settings, e *util.Environment) (*PipelineOptions, error)
NewCheckConfigOptions constructor
func NewDeployOptions ¶
func NewDeployOptions(c util.Settings, e *util.Environment) (*PipelineOptions, error)
NewDeployOptions constructor
func NewDevOptions ¶
func NewDevOptions(c util.Settings, e *util.Environment) (*PipelineOptions, error)
NewDevOptions ctor
func NewPipelineOptions ¶
func NewPipelineOptions(c util.Settings, e *util.Environment) (*PipelineOptions, error)
NewPipelineOptions big-ass constructor
func (*PipelineOptions) BasePath ¶
func (o *PipelineOptions) BasePath() string
func (*PipelineOptions) BuildPath ¶
func (o *PipelineOptions) BuildPath(s ...string) string
BuildPath returns the path where created builds live
func (*PipelineOptions) CachePath ¶
func (o *PipelineOptions) CachePath() string
CachePath returns the path for storing pipeline cache
func (*PipelineOptions) ContainerPath ¶
func (o *PipelineOptions) ContainerPath() string
ContainerPath returns the path where exported containers live
func (*PipelineOptions) GuestPath ¶
func (o *PipelineOptions) GuestPath(s ...string) string
GuestPath returns a path relative to the build root on the guest.
func (*PipelineOptions) HostPath ¶
func (o *PipelineOptions) HostPath(s ...string) string
HostPath returns a path relative to the build root on the host.
func (*PipelineOptions) IgnoreFilePath ¶
func (o *PipelineOptions) IgnoreFilePath() string
IgnoreFilePath return the absolute path of the ignore file
func (*PipelineOptions) MntPath ¶
func (o *PipelineOptions) MntPath(s ...string) string
MntPath returns a path relative to the read-only mount root on the guest.
func (*PipelineOptions) ProjectDownloadPath ¶
func (o *PipelineOptions) ProjectDownloadPath() string
ProjectDownloadPath returns the path where downloaded projects live
func (*PipelineOptions) ReportPath ¶
func (o *PipelineOptions) ReportPath(s ...string) string
ReportPath returns a path relative to the report root on the guest.
func (*PipelineOptions) SourcePath ¶
func (o *PipelineOptions) SourcePath() string
func (*PipelineOptions) StepPath ¶
func (o *PipelineOptions) StepPath() string
StepPath returns the path where downloaded steps live
func (*PipelineOptions) WorkflowURL ¶
func (o *PipelineOptions) WorkflowURL() string
func (*PipelineOptions) WorkingPath ¶
func (o *PipelineOptions) WorkingPath(s ...string) string
WorkingPath returns paths relative to our working dir (usually ".wercker")
type PipelineResult ¶
PipelineResult keeps track of the results of a build or deploy mostly so that we can use it to run after-steps
func (*PipelineResult) ExportEnvironment ¶
func (pr *PipelineResult) ExportEnvironment(sessionCtx context.Context, sess *Session) error
ExportEnvironment for this pipeline result (used in after-steps)
type PullOptions ¶
type PullOptions struct {
*GlobalOptions
Repository string
Branch string
Commit string
Status string
Result string
Output string
Load bool
Force bool
}
PullOptions for the pull command
func NewPullOptions ¶
func NewPullOptions(c util.Settings, e *util.Environment) (*PullOptions, error)
NewPullOptions constructor
type RawBoxConfig ¶
type RawBoxConfig struct {
*BoxConfig
}
RawBoxConfig is the unwrapper for BoxConfig
func (*RawBoxConfig) UnmarshalYAML ¶
func (r *RawBoxConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML first attempts to unmarshal as a string to ID otherwise attempts to unmarshal to the whole struct
type RawConfig ¶
type RawConfig struct {
*Config
}
RawConfig is the unwrapper for Config
func (*RawConfig) UnmarshalYAML ¶
UnmarshalYAML in this case is a little involved due to the myriad shapes our data can take for deploys (unfortunately), so we have to pretend the data is a map for a while and do a marshal/unmarshal hack to parse the subsections
type RawPipelineConfig ¶
type RawPipelineConfig struct {
*PipelineConfig
}
RawPipelineConfig is our unwrapper for PipelineConfig
func (*RawPipelineConfig) UnmarshalYAML ¶
func (r *RawPipelineConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML in this case is a little involved due to the myriad shapes our data can take for deploys (unfortunately), so we have to pretend the data is a map for a while and do a marshal/unmarshal hack to parse the subsections
type RawStepConfig ¶
type RawStepConfig struct {
*StepConfig
}
RawStepConfig is our unwrapper for config steps
func (*RawStepConfig) UnmarshalYAML ¶
func (r *RawStepConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML is fun, for this one as we're supporting three different types of yaml structures, a string, a map[string]map[string]string, and a map[string]string, these basically equate to these three styles of specifying the step that people commonly use:
steps:
- string-step # this parses as a string
- script: # this parses as a map[string]map[string]string
code: done right
- script: # this parses as a map[string]string
code: done wrong
type RawStepsConfig ¶
type RawStepsConfig []*RawStepConfig
RawStepsConfig is a list of RawStepConfigs
type Receiver ¶
type Receiver struct {
// contains filtered or unexported fields
}
Receiver is for reading from our session
func NewReceiver ¶
NewReceiver returns a new channel-based io.Writer
type ReporterOptions ¶
type ReporterOptions struct {
*GlobalOptions
ReporterHost string
ReporterKey string
ShouldReport bool
}
ReporterOptions for our reporting
func NewReporterOptions ¶
func NewReporterOptions(c util.Settings, e *util.Environment, globalOpts *GlobalOptions) (*ReporterOptions, error)
NewReporterOptions constructor
type S3Store ¶
type S3Store struct {
// contains filtered or unexported fields
}
S3Store stores files in S3
func (*S3Store) StoreFromFile ¶
func (s *S3Store) StoreFromFile(args *StoreFromFileArgs) error
StoreFromFile copies the file from args.Path to options.Bucket + args.Key.
type Sender ¶
type Sender struct {
// contains filtered or unexported fields
}
Sender is for sending to our session
type ServiceBox ¶
type ServiceBox interface {
Run(context.Context, *util.Environment, []string) (*docker.Container, error)
Fetch(ctx context.Context, env *util.Environment) (*docker.Image, error)
Link() string
GetID() string
GetName() string
}
ServiceBox interface to services
type Session ¶
type Session struct {
// contains filtered or unexported fields
}
Session is our way to interact with the docker container
func NewSession ¶
func NewSession(options *PipelineOptions, transport Transport) *Session
NewSession returns a new interactive session to a container.
func (*Session) Attach ¶
Attach us to our container and set up read and write queues. Returns a context object for the transport so we can propagate cancels on errors and closed connections.
func (*Session) HideLogs ¶
func (s *Session) HideLogs()
HideLogs will emit Logs with args.Hidden set to true
func (*Session) SendChecked ¶
func (s *Session) SendChecked(sessionCtx context.Context, commands ...string) (int, []string, error)
SendChecked sends commands, waits for them to complete and returns the exit status and output Ways to know a command is done:
[x] We received the sentinel echo [x] The container has exited and we've exhausted the incoming data [x] The session has closed and we've exhaused the incoming data [x] The command has timed out
Ways for a command to be successful:
[x] We received the sentinel echo with exit code 0
type Step ¶
type Step interface {
// Bunch of getters
DisplayName() string
Env() *util.Environment
Cwd() string
ID() string
Name() string
Owner() string
SafeID() string
Version() string
ShouldSyncEnv() bool
Checkpoint() string
// Actual methods
Fetch() (string, error)
InitEnv(*util.Environment)
Execute(context.Context, *Session) (int, error)
CollectFile(string, string, string, io.Writer) error
CollectArtifact(string) (*Artifact, error)
// TODO(termie): don't think this needs to be universal
ReportPath(...string) string
}
Step interface for steps, to be renamed
type StepConfig ¶
type StepConfig struct {
ID string
Cwd string
Name string
Data map[string]string
Checkpoint string
}
StepConfig holds our step configs
type StepDesc ¶
type StepDesc struct {
Name string
Version string
Description string
Keywords []string
Properties map[string]StepDescProperty
}
StepDesc represents a wercker-step.yml
func ReadStepDesc ¶
ReadStepDesc reads a file, expecting it to be parsed into a StepDesc.
type StepDescProperty ¶
StepDescProperty is the structure of the values in the "properties" section of the config
type Store ¶
type Store interface {
// StoreFromFile copies a file from local disk to the store
StoreFromFile(*StoreFromFileArgs) error
}
Store is generic store interface
type StoreFromFileArgs ¶
type StoreFromFileArgs struct {
// Path to the local file.
Path string
// Key of the file as stored in the store.
Key string
// ContentType hints to the content-type of the file (might be ignored)
ContentType string
// Meta data associated with the upload (might be ignored)
Meta map[string]*string
// MaxTries is the maximum that a store should retry should the store fail.
MaxTries int
}
StoreFromFileArgs are the args for storing a file
type Transport ¶
type Transport interface {
Attach(context.Context, io.Reader, io.Writer, io.Writer) (context.Context, error)
}
Transport interface for talking to containervisors
type VersionOptions ¶
VersionOptions contains the options associated with the version command.
func NewVersionOptions ¶
func NewVersionOptions(c util.Settings, e *util.Environment) (*VersionOptions, error)
NewVersionOptions constructor