in graph/task.go [112:147]
func (t *Task) AddTaskDefaults(ctx context.Context, opts *TaskOptions) error {
if opts.DefaultWorkingDir != "" && t.WorkingDirectory == "" {
t.WorkingDirectory = opts.DefaultWorkingDir
}
// Merge in the defaults with the Task's specific environment variables.
// NB: Order is important here. Allow the Task's environment variables to override the defaults provided.
newEnvs, err := mergeEnvs(t.Envs, opts.Envs)
if err != nil {
return err
}
t.Envs = newEnvs
t.Credentials = opts.Credentials
if opts.TaskName != "" {
t.TaskName = opts.TaskName
} else {
t.TaskName = noTaskNamePlaceholder
}
t.Registry = opts.Registry
// External network parsed in from CLI will be set as default network, it will be used for any step if no network provide for them
// The external network is append at the end of the list of networks, later we will do reverse iteration to get this network
if opts.Network != "" {
var externalNetwork *Network
externalNetwork, err = NewNetwork(opts.Network, false, "external", true, true)
if err != nil {
return err
}
t.Networks = append(t.Networks, externalNetwork)
}
err = t.initialize(ctx)
return err
}