Documentation ¶
Index ¶
- Constants
- Variables
- func BoilRuns(runs []model.Run, pathMappings []PathMapping) ([]model.Cmd, error)
- func FilterByLabel(label dockerfile.Label) filters.KeyValuePair
- func FilterByLabelValue(label dockerfile.Label, val dockerfile.LabelValue) filters.KeyValuePair
- func FilterByRefName(ref reference.Named) filters.KeyValuePair
- func IsRunStepFailure(err error) bool
- func NewDockerImageBuilder(dCli docker.Client, extraLabels dockerfile.Labels) *dockerImageBuilder
- func Options(archive io.Reader, args model.DockerBuildArgs) docker.BuildOptions
- func PathMappingsToContainerPaths(mappings []PathMapping) []string
- func PathMappingsToLocalPaths(mappings []PathMapping) []string
- func TarArchiveForPaths(ctx context.Context, toArchive []PathMapping, filter model.PathMatcher) io.Reader
- func TarDfOnly(ctx context.Context, writer io.Writer, df dockerfile.Dockerfile) error
- func TarPath(ctx context.Context, writer io.Writer, path string) error
- func WrapCodeExitError(err error, cID container.ID, cmd model.Cmd) error
- func WrapContainerExecError(err error, cID container.ID, cmd model.Cmd) error
- type ArchiveBuilder
- type CacheBuilder
- type CacheInputs
- type CacheRef
- type Clock
- type CustomBuilder
- type ExecCustomBuilder
- type ImageBuilder
- type ImageReaper
- type PathMapping
- func FilesToPathMappings(files []string, syncs []model.Sync) ([]PathMapping, error)
- func FilterMappings(mappings []PathMapping, matcher model.PathMatcher) ([]PathMapping, error)
- func MissingLocalPaths(ctx context.Context, mappings []PathMapping) (missing, rest []PathMapping, err error)
- func SyncsToPathMappings(syncs []model.Sync) []PathMapping
- type PipelineState
- func (ps *PipelineState) End(ctx context.Context, err error)
- func (ps *PipelineState) EndPipelineStep(ctx context.Context)
- func (ps *PipelineState) Printf(ctx context.Context, format string, a ...interface{})
- func (ps *PipelineState) StartBuildStep(ctx context.Context, format string, a ...interface{})
- func (ps *PipelineState) StartPipelineStep(ctx context.Context, format string, a ...interface{})
- func (ps *PipelineState) Writer(ctx context.Context) io.Writer
- type RunStepFailure
Constants ¶
const ( // Label for all image builds created with Tilt. // // It's the responsibility of ImageBuilder to ensure // that all images built with Tilt have an appropriate BuildMode label. BuildMode dockerfile.Label = "tilt.buildMode" // Label when an image is created by a test. TestImage dockerfile.Label = "tilt.test" // Label when an image is for path caching. CacheImage dockerfile.Label = "tilt.cache" )
const ( BuildModeScratch dockerfile.LabelValue = "scratch" BuildModeExisting dockerfile.LabelValue = "existing" )
const CacheTagPrefix = "tilt-cache-"
Cache directories are stored at the same image name, but with just the cachedir contents and at a particular tag.
const TaskKillExitCode = 137
https://success.docker.com/article/what-causes-a-container-to-exit-with-code-137
Variables ¶
var ImageTagPrefix = "tilt-"
The image tag prefix can be customized.
This allows our integration tests to customize the prefix so that they can write to a public registry without interfering with each other.
Functions ¶
func FilterByLabel ¶
func FilterByLabel(label dockerfile.Label) filters.KeyValuePair
func FilterByLabelValue ¶
func FilterByLabelValue(label dockerfile.Label, val dockerfile.LabelValue) filters.KeyValuePair
func FilterByRefName ¶
func FilterByRefName(ref reference.Named) filters.KeyValuePair
func IsRunStepFailure ¶ added in v0.9.7
func NewDockerImageBuilder ¶
func NewDockerImageBuilder(dCli docker.Client, extraLabels dockerfile.Labels) *dockerImageBuilder
func Options ¶
func Options(archive io.Reader, args model.DockerBuildArgs) docker.BuildOptions
func PathMappingsToContainerPaths ¶
func PathMappingsToContainerPaths(mappings []PathMapping) []string
func PathMappingsToLocalPaths ¶ added in v0.7.11
func PathMappingsToLocalPaths(mappings []PathMapping) []string
func TarArchiveForPaths ¶ added in v0.10.0
func TarArchiveForPaths(ctx context.Context, toArchive []PathMapping, filter model.PathMatcher) io.Reader
func TarDfOnly ¶ added in v0.9.1
func TarDfOnly(ctx context.Context, writer io.Writer, df dockerfile.Dockerfile) error
func WrapCodeExitError ¶ added in v0.10.0
Types ¶
type ArchiveBuilder ¶
type ArchiveBuilder struct {
// contains filtered or unexported fields
}
func NewArchiveBuilder ¶
func NewArchiveBuilder(writer io.Writer, filter model.PathMatcher) *ArchiveBuilder
func (*ArchiveBuilder) ArchivePathsIfExist ¶
func (a *ArchiveBuilder) ArchivePathsIfExist(ctx context.Context, paths []PathMapping) error
ArchivePathsIfExist creates a tar archive of all local files in `paths`. It quietly skips any paths that don't exist.
func (*ArchiveBuilder) Close ¶ added in v0.9.4
func (a *ArchiveBuilder) Close() error
func (*ArchiveBuilder) Paths ¶ added in v0.7.11
func (a *ArchiveBuilder) Paths() []string
Local paths that were archived
type CacheBuilder ¶ added in v0.2.0
type CacheBuilder struct {
// contains filtered or unexported fields
}
Reads and writes images that contain cache directories.
Used in the directory cache experimental feature, and designed to be deleted easily if that experiment doesn't work out.
https://app.clubhouse.io/windmill/story/728/support-package-json-changes-gracefully
func NewCacheBuilder ¶ added in v0.2.0
func NewCacheBuilder(dCli docker.Client) CacheBuilder
func (CacheBuilder) CreateCacheFrom ¶ added in v0.2.0
func (b CacheBuilder) CreateCacheFrom(ctx context.Context, inputs CacheInputs, sourceRef reference.NamedTagged, buildArgs model.DockerBuildArgs) error
Creates a cache image.
func (CacheBuilder) FetchCache ¶ added in v0.2.0
func (b CacheBuilder) FetchCache(ctx context.Context, inputs CacheInputs) (CacheRef, error)
Check if a cache exists for this ref name.
type CacheInputs ¶ added in v0.7.11
type CacheInputs struct { Ref reference.Named CachePaths []string BaseDockerfile dockerfile.Dockerfile }
type CacheRef ¶ added in v0.7.11
type CacheRef reference.NamedTagged
type Clock ¶ added in v0.5.0
func ProvideClock ¶ added in v0.5.0
func ProvideClock() Clock
type CustomBuilder ¶ added in v0.7.11
type ExecCustomBuilder ¶ added in v0.7.11
type ExecCustomBuilder struct {
// contains filtered or unexported fields
}
func NewExecCustomBuilder ¶ added in v0.7.11
func NewExecCustomBuilder(dCli docker.Client, clock Clock) *ExecCustomBuilder
type ImageBuilder ¶
type ImageBuilder interface { BuildImage(ctx context.Context, ps *PipelineState, ref reference.Named, df dockerfile.Dockerfile, buildPath string, filter model.PathMatcher, buildArgs map[string]string) (reference.NamedTagged, error) DeprecatedFastBuildImage(ctx context.Context, ps *PipelineState, ref reference.Named, baseDockerfile dockerfile.Dockerfile, syncs []model.Sync, filter model.PathMatcher, runs []model.Run, entrypoint model.Cmd) (reference.NamedTagged, error) PushImage(ctx context.Context, name reference.NamedTagged, writer io.Writer) (reference.NamedTagged, error) TagImage(ctx context.Context, name reference.Named, dig digest.Digest) (reference.NamedTagged, error) ImageExists(ctx context.Context, ref reference.NamedTagged) (bool, error) }
func DefaultImageBuilder ¶
func DefaultImageBuilder(b *dockerImageBuilder) ImageBuilder
type ImageReaper ¶
type ImageReaper struct {
// contains filtered or unexported fields
}
func NewImageReaper ¶
func NewImageReaper(docker docker.Client) ImageReaper
func (ImageReaper) RemoveTiltImages ¶
func (r ImageReaper) RemoveTiltImages(ctx context.Context, createdBefore time.Time, force bool, extraFilters ...filters.KeyValuePair) error
Delete all Tilt builds
For safety reasons, we only delete images with the tilt.buildMode label, but we let the caller set additional filters.
type PathMapping ¶ added in v0.5.0
PathMapping represents a mapping from the local path to the tarball path
To send a local file into a container, we copy it into a tarball, send the tarball to docker, and then run a sequence of steps to unpack the tarball in the container file system.
That means every file has 3 paths: 1) LocalPath 2) TarballPath 3) ContainerPath
In incremental builds, TarballPath and ContainerPath are always the same, so it was correct to use TarballPath and ContainerPath interchangeably.
In DockerBuilds, this is no longer the case.
TODO(nick): Do a pass on renaming all the path types
func FilesToPathMappings ¶
func FilesToPathMappings(files []string, syncs []model.Sync) ([]PathMapping, error)
FilesToPathMappings converts a list of absolute local filepaths into pathMappings (i.e. associates local filepaths with their syncs and destination paths), skipping those that it cannot associate with a sync.
func FilterMappings ¶
func FilterMappings(mappings []PathMapping, matcher model.PathMatcher) ([]PathMapping, error)
func MissingLocalPaths ¶
func MissingLocalPaths(ctx context.Context, mappings []PathMapping) (missing, rest []PathMapping, err error)
Return all the path mappings for local paths that do not exist.
func SyncsToPathMappings ¶ added in v0.7.11
func SyncsToPathMappings(syncs []model.Sync) []PathMapping
func (PathMapping) Filter ¶ added in v0.5.0
func (m PathMapping) Filter(matcher model.PathMatcher) ([]PathMapping, error)
func (PathMapping) PrettyStr ¶ added in v0.7.12
func (m PathMapping) PrettyStr() string
type PipelineState ¶
type PipelineState struct {
// contains filtered or unexported fields
}
func NewPipelineState ¶
func NewPipelineState(ctx context.Context, totalStepCount int, c Clock) *PipelineState
func (*PipelineState) End ¶
func (ps *PipelineState) End(ctx context.Context, err error)
NOTE(maia): this func should always be deferred in a closure, so that the `err` arg is bound at the time of calling rather than at the time of deferring. I.e., do:
defer func() { ps.End(err) }()
and NOT:
defer ps.End(err)
func (*PipelineState) EndPipelineStep ¶
func (ps *PipelineState) EndPipelineStep(ctx context.Context)
func (*PipelineState) Printf ¶
func (ps *PipelineState) Printf(ctx context.Context, format string, a ...interface{})
func (*PipelineState) StartBuildStep ¶
func (ps *PipelineState) StartBuildStep(ctx context.Context, format string, a ...interface{})
func (*PipelineState) StartPipelineStep ¶
func (ps *PipelineState) StartPipelineStep(ctx context.Context, format string, a ...interface{})
type RunStepFailure ¶ added in v0.9.7
Indicates that the update failed because one of the user's Runs failed (i.e. exited non-zero) -- as opposed to an infrastructure issue.
func MaybeRunStepFailure ¶ added in v0.10.0
func MaybeRunStepFailure(err error) (RunStepFailure, bool)
func (RunStepFailure) Empty ¶ added in v0.10.0
func (e RunStepFailure) Empty() bool
func (RunStepFailure) Error ¶ added in v0.9.7
func (e RunStepFailure) Error() string