Migrate dagger.#Secret and dagger.#Stream to new format

- Refactored to keep every transformation of built-in types (e.g. FS,
  Secret, etc) to/from CUE in the same place (plancontext)
- dagger.#Service and dagger.#Secret are now following the new FS-like format
  (e.g. `_service: id: string`)
- Backward compatibility
- dagger.#Stream is now an alias for dagger.#Service

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
This commit is contained in:
Andrea Luzzardi
2021-11-30 17:51:28 -08:00
parent 5ab3c47dac
commit 5b7b1cab79
27 changed files with 284 additions and 217 deletions

View File

@@ -67,10 +67,7 @@ func (p *Plan) registerLocalDirs() error {
if err != nil {
return err
}
p.context.LocalDirs.Register(&plancontext.LocalDir{
Path: dir,
})
p.context.LocalDirs.Add(dir)
}
return nil

View File

@@ -68,13 +68,10 @@ func (c importTask) Run(ctx context.Context, pctx *plancontext.Context, s solver
return nil, err
}
id := pctx.FS.Register(&plancontext.FS{
Result: result,
})
return compiler.NewValueWithContent(id,
cue.Str("fs"),
cue.Hid("_fs", "alpha.dagger.io/dagger"),
cue.Str("id"),
)
fs := pctx.FS.New(result)
out := compiler.NewValue()
if err := out.FillPath(cue.ParsePath("fs"), fs.Value()); err != nil {
return nil, err
}
return out, nil
}

View File

@@ -36,12 +36,10 @@ func (c secretEnvTask) Run(ctx context.Context, pctx *plancontext.Context, _ sol
if env == "" {
return nil, fmt.Errorf("environment variable %q not set", secretEnv.Envvar)
}
id := pctx.Secrets.Register(&plancontext.Secret{
PlainText: env,
})
return compiler.NewValueWithContent(id,
cue.Str("contents"),
cue.Str("id"),
)
secret := pctx.Secrets.New(env)
out := compiler.NewValue()
if err := out.FillPath(cue.ParsePath("contents"), secret.Value()); err != nil {
return nil, err
}
return out, nil
}

View File

@@ -35,12 +35,11 @@ func (c secretFileTask) Run(ctx context.Context, pctx *plancontext.Context, _ so
if err != nil {
return nil, err
}
id := pctx.Secrets.Register(&plancontext.Secret{
PlainText: string(data),
})
return compiler.NewValueWithContent(id,
cue.Str("contents"),
cue.Str("id"),
)
secret := pctx.Secrets.New(string(data))
out := compiler.NewValue()
if err := out.FillPath(cue.ParsePath("contents"), secret.Value()); err != nil {
return nil, err
}
return out, nil
}