Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Builder ¶
type Builder struct {
Registry string
RegistryInsecure bool
BuildTag string
Logger Logger
Interface Interface
DoPush bool
}
Builder uses buildkit to build a list of service directories
func (*Builder) BuildService ¶
BuildService builds a specific sevice directory with a specific context
type Interface ¶
type Interface interface {
//StartJob notifies the interface that a job has been received, and ready to start
StartJob(service string, image string)
//FailJob marks a specific job as having failed with a given error.
//This job is "dead" and will no longer receive any logs.
FailJob(service string, err error)
//SucceedJob marks a specific job as having succeeded. It will no longer receive any logs.
SucceedJob(service string)
//SetPushing marks a job as currently pushing
SetPushing(service string)
//ProcessLog handles a single log line
ProcessLog(service string, logLine string)
//Terminate this interface and close any resources it is using.
Close()
//The interface is in charge of handling user cancelling (e.g., sigquit or ^C).
//Call these functions when the user specifies that they would like to cancel building.
AddCancelListener(cancelFunc func())
}
An Interface represents a way to output the current state of a build
Currently there are two implementations: - Interactive Interfaces use advanced terminal capabilities, similar to the "curses" library - Plaintext Interfaces simply output jobs and their output as they are built
func NewInteractiveInterface ¶
NewInteractiveInterface creates and initializes a new tcell screen and event loop for use as an Interface
func NewPlaintextInterface ¶
func NewPlaintextInterface() Interface
NewPlaintextInterface initializes a new plaintext (e.g., no advanced terminal required) Interface
type Logger ¶
type Logger interface {
Log(service string, when time.Time, message ...interface{}) error
Close()
AddLogLineListener(func(service, logLine string))
}
Logger takes log messages from the buildkit build server(s) and stores them
func NewFlatfileLogger ¶
NewFlatfileLogger builds a new Logger which writes text logs to (repository root)/logs/(service name).log
Click to show internal directories.
Click to hide internal directories.