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.