Documentation
¶
Overview ¶
Package runsummary implements structs that report on a `turbo run` and `turbo run --dry`
Index ¶
- Constants
- type GlobalEnvConfiguration
- type GlobalEnvVarSummary
- type GlobalHashSummary
- type Meta
- func (rsm *Meta) Close(ctx context.Context, exitCode int, workspaceInfos workspace.Catalog, ui cli.Ui) error
- func (rsm *Meta) CloseTask(task *TaskSummary, logs []byte)
- func (rsm Meta) FormatAndPrintText(workspaceInfos workspace.Catalog, ui cli.Ui) error
- func (rsm *Meta) FormatJSON() ([]byte, error)
- func (rsm *Meta) SpacesIsEnabled() bool
- type RunSummary
- type TaskCacheSummary
- type TaskEnvConfiguration
- type TaskEnvVarSummary
- type TaskExecutionSummary
- type TaskSummary
Constants ¶
const ( TargetBuilding executionEventName TargetBuildStopped TargetExecuted TargetBuilt TargetCached TargetBuildFailed )
The collection of expected build result statuses.
const MissingTaskLabel = "<NONEXISTENT>"
MissingTaskLabel is printed when a package is missing a definition for a task that is supposed to run E.g. if `turbo run build --dry` is run, and package-a doesn't define a `build` script in package.json, the RunSummary will print this, instead of the script (e.g. `next build`).
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type GlobalEnvConfiguration ¶
type GlobalEnvConfiguration struct {
Env []string `json:"env"`
PassThroughEnv []string `json:"passThroughEnv"`
}
GlobalEnvConfiguration contains the environment variable inputs for the global hash
type GlobalEnvVarSummary ¶
type GlobalEnvVarSummary struct {
Specified GlobalEnvConfiguration `json:"specified"`
Configured env.EnvironmentVariablePairs `json:"configured"`
Inferred env.EnvironmentVariablePairs `json:"inferred"`
PassThrough env.EnvironmentVariablePairs `json:"passthrough"`
}
GlobalEnvVarSummary contains the environment variables that impacted the global hash
type GlobalHashSummary ¶
type GlobalHashSummary struct {
GlobalCacheKey string `json:"rootKey"`
GlobalFileHashMap map[turbopath.AnchoredUnixPath]string `json:"files"`
RootExternalDepsHash string `json:"hashOfExternalDependencies"`
DotEnv turbopath.AnchoredUnixPathArray `json:"globalDotEnv"`
EnvVars GlobalEnvVarSummary `json:"environmentVariables"`
}
GlobalHashSummary contains the pieces of data that impacted the global hash (then then impacted the task hash)
func NewGlobalHashSummary ¶
func NewGlobalHashSummary( globalCacheKey string, fileHashMap map[turbopath.AnchoredUnixPath]string, rootExternalDepsHash string, globalEnv []string, globalPassThroughEnv []string, globalDotEnv turbopath.AnchoredUnixPathArray, resolvedEnvVars env.DetailedMap, resolvedPassThroughEnvVars env.EnvironmentVariableMap, ) *GlobalHashSummary
NewGlobalHashSummary creates a GlobalHashSummary struct from a set of fields.
type Meta ¶
type Meta struct {
RunSummary *RunSummary
// contains filtered or unexported fields
}
Meta is a wrapper around the serializable RunSummary, with some extra information about the Run and references to other things that we need.
func NewRunSummary ¶
func NewRunSummary( startAt time.Time, repoRoot turbopath.AbsoluteSystemPath, repoPath turbopath.RelativeSystemPath, turboVersion string, apiClient *client.APIClient, spacesClient *client.APIClient, runOpts util.RunOpts, packages []string, globalEnvMode util.EnvMode, envAtExecutionStart env.EnvironmentVariableMap, globalHashSummary *GlobalHashSummary, synthesizedCommand string, ) Meta
NewRunSummary returns a RunSummary instance
func (*Meta) Close ¶
func (rsm *Meta) Close(ctx context.Context, exitCode int, workspaceInfos workspace.Catalog, ui cli.Ui) error
Close wraps up the RunSummary at the end of a `turbo run`.
func (*Meta) CloseTask ¶
func (rsm *Meta) CloseTask(task *TaskSummary, logs []byte)
CloseTask posts the result of the Task to Spaces
func (Meta) FormatAndPrintText ¶
FormatAndPrintText prints a Run Summary to the Terminal UI
func (*Meta) FormatJSON ¶
FormatJSON returns a json string representing a RunSummary
func (*Meta) SpacesIsEnabled ¶
SpacesIsEnabled returns true if this run summary is going to send to a spaces backend
type RunSummary ¶
type RunSummary struct {
ID ksuid.KSUID `json:"id"`
Version string `json:"version"`
TurboVersion string `json:"turboVersion"`
Monorepo bool `json:"monorepo"`
GlobalHashSummary *GlobalHashSummary `json:"globalCacheInputs"`
Packages []string `json:"packages"`
EnvMode util.EnvMode `json:"envMode"`
FrameworkInference bool `json:"frameworkInference"`
ExecutionSummary *executionSummary `json:"execution,omitempty"`
Tasks []*TaskSummary `json:"tasks"`
User string `json:"user"`
SCM *scmState `json:"scm"`
}
RunSummary contains a summary of what happens in the `turbo run` command and why.
func (*RunSummary) TrackTask ¶
func (summary *RunSummary) TrackTask(taskID string) (func(outcome executionEventName, err error, exitCode *int), *TaskExecutionSummary)
TrackTask makes it possible for the consumer to send information about the execution of a task.
type TaskCacheSummary ¶
type TaskCacheSummary struct {
Local bool `json:"local"` // Deprecated, but keeping around for --dry=json
Remote bool `json:"remote"` // Deprecated, but keeping around for --dry=json
Status string `json:"status"` // should always be there
Source string `json:"source,omitempty"` // can be empty on status:miss
TimeSaved int `json:"timeSaved"` // always include, but can be 0
}
TaskCacheSummary is an extended version of cache.ItemStatus that includes TimeSaved and some better data.
func NewTaskCacheSummary ¶
func NewTaskCacheSummary(itemStatus cache.ItemStatus) TaskCacheSummary
NewTaskCacheSummary decorates a cache.ItemStatus into a TaskCacheSummary Importantly, it adds the derived keys of `source` and `status` based on the local/remote booleans. It would be nice if these were just included from upstream, but that is a more invasive change.
type TaskEnvConfiguration ¶
type TaskEnvConfiguration struct {
Env []string `json:"env"`
PassThroughEnv []string `json:"passThroughEnv"`
}
TaskEnvConfiguration contains the environment variable inputs for a task
type TaskEnvVarSummary ¶
type TaskEnvVarSummary struct {
Specified TaskEnvConfiguration `json:"specified"`
Configured []string `json:"configured"`
Inferred []string `json:"inferred"`
PassThrough []string `json:"passthrough"`
}
TaskEnvVarSummary contains the environment variables that impacted a task's hash
type TaskExecutionSummary ¶
type TaskExecutionSummary struct {
Duration time.Duration // updated during the task execution
// contains filtered or unexported fields
}
TaskExecutionSummary contains data about the state of a single task in a turbo run. Some fields are updated over time as the task prepares to execute and finishes execution.
func (*TaskExecutionSummary) ExitCode ¶
func (ts *TaskExecutionSummary) ExitCode() *int
ExitCode access exit code nil means no exit code was received
func (*TaskExecutionSummary) MarshalJSON ¶
func (ts *TaskExecutionSummary) MarshalJSON() ([]byte, error)
MarshalJSON munges the TaskExecutionSummary into a format we want We'll use an anonmyous, private struct for this, so it's not confusingly duplicated
type TaskSummary ¶
type TaskSummary struct {
TaskID string `json:"taskId,omitempty"`
Task string `json:"task"`
Package string `json:"package,omitempty"`
Hash string `json:"hash"`
ExpandedInputs map[turbopath.AnchoredUnixPath]string `json:"inputs"`
ExternalDepsHash string `json:"hashOfExternalDependencies"`
CacheSummary TaskCacheSummary `json:"cache"`
Command string `json:"command"`
CommandArguments []string `json:"cliArguments"`
Outputs []string `json:"outputs"`
ExcludedOutputs []string `json:"excludedOutputs"`
// Repo-relative, relative system path
LogFileRelativePath string `json:"logFile"`
// Repo-relative, relative system path
Dir string `json:"directory,omitempty"`
Dependencies []string `json:"dependencies"`
Dependents []string `json:"dependents"`
ResolvedTaskDefinition *fs.TaskDefinition `json:"resolvedTaskDefinition"`
ExpandedOutputs []turbopath.AnchoredSystemPath `json:"expandedOutputs"`
Framework string `json:"framework"`
EnvMode util.EnvMode `json:"envMode"`
EnvVars TaskEnvVarSummary `json:"environmentVariables"`
DotEnv turbopath.AnchoredUnixPathArray `json:"dotEnv"`
Execution *TaskExecutionSummary `json:"execution,omitempty"` // omit when it's not set
}
TaskSummary contains information about the task that was about to run TODO(mehulkar): `Outputs` and `ExcludedOutputs` are slightly redundant as the information is also available in ResolvedTaskDefinition. We could remove them and favor a version of Outputs that is the fully expanded list of files.