features

package
v0.8.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 24, 2024 License: MPL-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ApplyFlagOverrides

func ApplyFlagOverrides(ftrs *Features, envOverrides string) error

ApplyFlagOverrides parses a comma separated list of feature flag overrides (without the -- flag name prefix) and sets them in the referenced features.

Types

type Features

type Features struct {
	// Never enabled by default
	NoUseRegistryForWithDocker bool `long:"no-use-registry-for-with-docker" description:"disable use-registry-for-with-docker"` // escape hatch for disabling WITH DOCKER registry, e.g. used by eine-based tests
	EarthlyCIRunnerArg         bool `long:"earthly-ci-runner-arg" description:"includes EARTHLY_CI_RUNNER ARG"`                 // earthly CI was discontinued, no reason to enable this by default
	// VERSION 0.5
	ExecAfterParallel        bool `long:"exec-after-parallel" enabled_in_version:"0.5" description:"force execution after parallel conversion"`
	ParallelLoad             bool `long:"parallel-load" enabled_in_version:"0.5" description:"perform parallel loading of images into WITH DOCKER"`
	UseRegistryForWithDocker bool `` /* 135-byte string literal not displayed */

	// VERSION 0.6
	ForIn                      bool `long:"for-in" enabled_in_version:"0.6" description:"allow the use of the FOR command"`
	NoImplicitIgnore           bool `` /* 209-byte string literal not displayed */
	ReferencedSaveOnly         bool `long:"referenced-save-only" enabled_in_version:"0.6" description:"only save artifacts that are directly referenced"`
	RequireForceForUnsafeSaves bool `` /* 145-byte string literal not displayed */
	UseCopyIncludePatterns     bool `` /* 133-byte string literal not displayed */

	// VERSION 0.7
	CheckDuplicateImages     bool `long:"check-duplicate-images" enabled_in_version:"0.7" description:"check for duplicate images during output"`
	EarthlyCIArg             bool `long:"ci-arg" enabled_in_version:"0.7" description:"include EARTHLY_CI arg"`
	EarthlyGitAuthorArgs     bool `` /* 129-byte string literal not displayed */
	EarthlyLocallyArg        bool `long:"earthly-locally-arg" enabled_in_version:"0.7" description:"includes EARTHLY_LOCALLY ARG"`
	EarthlyVersionArg        bool `long:"earthly-version-arg" enabled_in_version:"0.7" description:"includes EARTHLY_VERSION and EARTHLY_BUILD_SHA ARGs"`
	ExplicitGlobal           bool `` /* 141-byte string literal not displayed */
	GitCommitAuthorTimestamp bool `long:"git-commit-author-timestamp" enabled_in_version:"0.7" description:"include EARTHLY_GIT_COMMIT_AUTHOR_TIMESTAMP arg"`
	NewPlatform              bool `long:"new-platform" enabled_in_version:"0.7" description:"enable new platform behavior"`
	NoTarBuildOutput         bool `` /* 134-byte string literal not displayed */
	SaveArtifactKeepOwn      bool `long:"save-artifact-keep-own" enabled_in_version:"0.7" description:"always apply the --keep-own flag with SAVE ARTIFACT"`
	ShellOutAnywhere         bool `` /* 127-byte string literal not displayed */
	UseCacheCommand          bool `long:"use-cache-command" enabled_in_version:"0.7" description:"allow use of CACHE command in Earthfiles"`
	UseChmod                 bool `long:"use-chmod" enabled_in_version:"0.7" description:"enable the COPY --chmod option"`
	UseCopyLink              bool `long:"use-copy-link" enabled_in_version:"0.7" description:"use the equivalent of COPY --link for all copy-like operations"`
	UseHostCommand           bool `long:"use-host-command" enabled_in_version:"0.7" description:"allow use of HOST command in Earthfiles"`
	UseNoManifestList        bool `long:"use-no-manifest-list" enabled_in_version:"0.7" description:"enable the SAVE IMAGE --no-manifest-list option"`
	UsePipelines             bool `long:"use-pipelines" enabled_in_version:"0.7" description:"enable the PIPELINE and TRIGGER commands"`
	UseProjectSecrets        bool `long:"use-project-secrets" enabled_in_version:"0.7" description:"enable project-based secret resolution"`
	WaitBlock                bool `` /* 133-byte string literal not displayed */

	// VERSION 0.8
	NoNetwork                       bool `long:"no-network" enabled_in_version:"0.8" description:"allow the use of RUN --network=none commands"`
	ArgScopeSet                     bool `` /* 148-byte string literal not displayed */
	UseDockerIgnore                 bool `` /* 180-byte string literal not displayed */
	PassArgs                        bool `` /* 143-byte string literal not displayed */
	GlobalCache                     bool `` /* 158-byte string literal not displayed */
	CachePersistOption              bool `` /* 144-byte string literal not displayed */
	GitRefs                         bool `long:"git-refs" enabled_in_version:"0.8" description:"includes EARTHLY_GIT_REFS ARG"`
	UseVisitedUpfrontHashCollection bool `` /* 267-byte string literal not displayed */
	UseFunctionKeyword              bool `long:"use-function-keyword" enabled_in_version:"0.8" description:"Use the FUNCTION key word instead of COMMAND"`
	// unreleased
	TryFinally                    bool `long:"try" description:"allow the use of the TRY/FINALLY commands"`
	WildcardBuilds                bool `long:"wildcard-builds" description:"allow for the expansion of wildcard (glob) paths for BUILD commands"`
	BuildAutoSkip                 bool `long:"build-auto-skip" description:"allow for --auto-skip to be used on individual BUILD commands"`
	AllowPrivilegedFromDockerfile bool `` /* 129-byte string literal not displayed */
	RunWithAWS                    bool `long:"run-with-aws" description:"make AWS credentials in the environment or ~/.aws available to RUN commands"`
	WildcardCopy                  bool `long:"wildcard-copy" description:"allow for the expansion of wildcard (glob) paths for COPY commands"`
	RawOutput                     bool `long:"raw-output" description:"allow for --raw-output on RUN commands"`
	GitAuthorEmailNameArgs        bool `long:"git-author-email-name-args" description:"includes EARTHLY_GIT_AUTHOR_EMAIL and EARTHLY_GIT_AUTHOR_NAME builtin ARGs"`

	Major int
	Minor int
}

Features is used to denote which features to flip on or off; this is for use in maintaining backwards compatibility

func FromContext added in v0.7.8

func FromContext(ctx context.Context) *Features

FromContext returns the *Features associated with the ctx. If no features is found, nil is returned.

func Get added in v0.7.5

func Get(version *spec.Version) (*Features, bool, error)

Get returns a features struct for a particular version

func (*Features) ProcessFlags added in v0.8.7

func (f *Features) ProcessFlags() ([]string, error)

func (*Features) String

func (f *Features) String() string

String returns a string representation of the version and set flags

func (*Features) Version

func (f *Features) Version() string

Version returns the current version

func (*Features) WithContext added in v0.7.8

func (f *Features) WithContext(ctx context.Context) (context.Context, error)

WithContext adds the current *Features into the given context and returns a new context. Trying to add the *Features to the context more than once will result in an error.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL