Documentation
¶
Overview ¶
Package build defines methods for building a v1.Image reference from a Go binary reference.
Index ¶
Constants ¶
const StrictScheme = "ko://"
StrictScheme is a prefix that can be placed on import paths that users think MUST be supported references.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Caching ¶
type Caching struct {
// contains filtered or unexported fields
}
Caching wraps a builder implementation in a layer that shares build results for the same inputs using a simple "future" implementation. Cached results may be invalidated by calling Invalidate with the same input passed to Build.
func NewCaching ¶
NewCaching wraps the provided build.Interface in an implementation that shares build results for a given path until the result has been invalidated.
func (*Caching) Invalidate ¶
Invalidate removes an import path's cached results.
func (*Caching) IsSupportedReference ¶
IsSupportedReference implements Interface
type Config ¶ added in v0.9.0
type Config struct {
// ID only serves as an identifier internally
ID string `yaml:",omitempty"`
// Dir is the directory out of which the build should be triggered
Dir string `yaml:",omitempty"`
// Main points to the main package, or the source file with the main
// function, in which case only the package will be used for the importpath
Main string `yaml:",omitempty"`
// Ldflags and Flags will be used for the Go build command line arguments
Ldflags StringArray `yaml:",omitempty"`
Flags FlagArray `yaml:",omitempty"`
// Env allows setting environment variables for `go build`
Env []string `yaml:",omitempty"`
}
Config contains the build configuration section. The name was changed from the original GoReleaser name to match better with the ko naming.
TODO: Introduce support for more fields where possible and where it makes / sense for `ko`, for example ModTimestamp, Env, or GoBinary.
type FlagArray ¶ added in v0.9.0
type FlagArray []string
FlagArray is a wrapper for an array of strings.
func (*FlagArray) UnmarshalYAML ¶ added in v0.9.0
UnmarshalYAML is a custom unmarshaler that wraps strings in arrays.
type GetBase ¶
GetBase takes an importpath and returns a base image reference and base image (or index).
type Interface ¶
type Interface interface {
// QualifyImport turns relative importpath references into complete importpaths.
// It also adds the ko scheme prefix if necessary.
// E.g., "github.com/google/ko/test" => "ko://github.com/google/ko/test"
// and "./test" => "ko://github.com/google/ko/test"
QualifyImport(string) (string, error)
// IsSupportedReference determines whether the given reference is to an
// importpath reference that Ko supports building, returning an error
// if it is not.
// TODO(mattmoor): Verify that some base repo: foo.io/bar can be suffixed with this reference and parsed.
IsSupportedReference(string) error
// Build turns the given importpath reference into a v1.Image containing the Go binary
// (or a set of images as a v1.ImageIndex).
Build(context.Context, string) (Result, error)
}
Interface abstracts different methods for turning a supported importpath reference into a v1.Image.
type Limiter ¶
type Limiter struct {
Builder Interface
// contains filtered or unexported fields
}
Limiter composes with another Interface to limit the number of concurrent builds.
func NewLimiter ¶
NewLimiter returns a new builder that only allows n concurrent builds of b.
func (*Limiter) IsSupportedReference ¶
IsSupportedReference implements Interface
type Option ¶
type Option func(*gobuildOpener) error
Option is a functional option for NewGo.
func WithBaseImages ¶
WithBaseImages is a functional option for overriding the base images that are used for different images.
func WithConfig ¶ added in v0.9.0
WithConfig is a functional option for providing GoReleaser Build influenced build settings for importpaths.
Set a fully qualified importpath (e.g. github.com/my-user/my-repo/cmd/app) as the mapping key for the respective Config.
func WithCreationTime ¶
WithCreationTime is a functional option for overriding the creation time given to images.
func WithDisabledOptimizations ¶
func WithDisabledOptimizations() Option
WithDisabledOptimizations is a functional option for disabling optimizations when compiling.
func WithKoDataCreationTime ¶ added in v0.9.0
WithKoDataCreationTime is a functional option for overriding the creation time given to the files in the kodata directory.
func WithLabel ¶ added in v0.8.2
WithLabel is a functional option for adding labels to built images.
func WithPlatforms ¶ added in v0.7.0
WithPlatforms is a functional option for building certain platforms for multi-platform base images. To build everything from the base, use "all", otherwise use a comma-separated list of platform specs, i.e.:
platform = <os>[/<arch>[/<variant>]] allowed = all | platform[,platform]*
type Recorder ¶
type Recorder struct {
ImportPaths []string
Builder Interface
// contains filtered or unexported fields
}
Recorder composes with another Interface to record the built import paths.
func (*Recorder) IsSupportedReference ¶
IsSupportedReference implements Interface
type Result ¶ added in v0.6.0
type Result interface {
MediaType() (types.MediaType, error)
Size() (int64, error)
Digest() (v1.Hash, error)
RawManifest() ([]byte, error)
}
Result represents the product of a Build. This is usually a v1.Image or v1.ImageIndex.
type StringArray ¶ added in v0.9.0
type StringArray []string
StringArray is a wrapper for an array of strings.
func (*StringArray) UnmarshalYAML ¶ added in v0.9.0
func (a *StringArray) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML is a custom unmarshaler that wraps strings in arrays.