Support for partially running a DAG

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
This commit is contained in:
Andrea Luzzardi
2021-12-23 16:09:01 +01:00
parent 2f92d8db4e
commit 2b30580217
2 changed files with 17 additions and 8 deletions

View File

@@ -26,8 +26,9 @@ type Plan struct {
}
type Config struct {
Args []string
With []string
Args []string
With []string
Target string
}
func Load(ctx context.Context, cfg Config) (*Plan, error) {
@@ -149,10 +150,17 @@ func (p *Plan) Up(ctx context.Context, s solver.Solver) (*compiler.Value, error)
computed := compiler.NewValue()
cfg := &cueflow.Config{
FindHiddenTasks: true,
}
if p.config.Target != "" {
cfg.Root = cue.ParsePath(p.config.Target)
// The target may reference dependencies outside of the target path.
// InferTasks will include them in the workflow.
cfg.InferTasks = true
}
flow := cueflow.New(
&cueflow.Config{
FindHiddenTasks: true,
},
cfg,
p.source.Cue(),
newRunner(p.context, s, computed),
)