Commit Graph

156 Commits

Author SHA1 Message Date
Richard Jones
7eb10f96fb
engine.#Copy matches docker.#Copy
Signed-off-by: Richard Jones <richard@dagger.io>
2022-01-27 20:09:12 -07:00
Helder Correia
c276a8b8ba
Make env in ImageConfig a map
Fields in CUE were renamed to the lowercase version of Dockerfile instructions.

There's now opportunity to make other fields simpler to use (e.g., healthcheck), this commit is focused on env.

Signed-off-by: Helder Correia <174525+helderco@users.noreply.github.com>
2022-01-26 17:12:08 -01:00
Richard Jones
a3c9c008c2
moved secret.MarshalCUE to outside of Walk
Signed-off-by: Richard Jones <richard@dagger.io>
2022-01-25 16:49:27 -07:00
Richard Jones
3292771811
moved FillPath outside of Walk
Signed-off-by: Richard Jones <richard@dagger.io>
2022-01-25 16:10:39 -07:00
Andrea Luzzardi
8ff72a5fa3 test: clean up yarn test
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2022-01-21 12:45:59 -08:00
Andrea Luzzardi
5016cf5e30 netlify: Europa port
- Fix netlify.#Deploy (there's still FIXMEs)
- Externalize the `deploy.sh` script
- Add tests
- Misc engine fixes for more explicit error messages

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2022-01-20 16:10:14 -08:00
Andrea Luzzardi
7a79395bd1
Merge pull request #1423 from aluzzardi/exec-mount-errors
exec: mount: improve error reporting on non-concrete mounts
2022-01-18 15:11:37 -08:00
Andrea Luzzardi
6abe77729e europa: Code Embedding POC
WIP PoC for code embedding

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2022-01-14 01:34:47 -08:00
Andrea Luzzardi
283eb3a933 exec: mount: improve error reporting on non-concrete mounts
Because of the mount disjunction, passing a non-concrete #FS results in
CUE being confused as to what type of mount it is (Cache, FS, Secret,
...).

This adds an explicit error check.

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2022-01-13 15:53:40 -08:00
Andrea Luzzardi
2b30580217 Support for partially running a DAG
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2022-01-13 15:52:13 -08:00
Richard Jones
e59ba48ec0
added dockerfile: field back to force evaluation of disjunction
Signed-off-by: Richard Jones <richard@dagger.io>
2022-01-13 15:53:55 -07:00
Richard Jones
2745e1ae2e
refactored
Signed-off-by: Richard Jones <richard@dagger.io>
2022-01-13 15:53:30 -07:00
Richard Jones
729013ae91
rename engine.#Build to engine.#Dockerfile
Signed-off-by: Richard Jones <richard@dagger.io>
2022-01-13 15:53:06 -07:00
Richard Jones
d7731fdc19
redacting with stars
Signed-off-by: Richard Jones <richard@dagger.io>
2022-01-13 15:21:30 -07:00
Richard Jones
63e092c3b1
commented out replace colons
Signed-off-by: Richard Jones <richard@dagger.io>
2022-01-13 15:06:09 -07:00
Richard Jones
05820f3a67
supports map of secrets; errors redact plaintext
Signed-off-by: Richard Jones <richard@dagger.io>
2022-01-13 15:06:08 -07:00
Richard Jones
86bf3bad86
transform secret
Signed-off-by: Richard Jones <richard@dagger.io>
2022-01-13 15:04:35 -07:00
Joel Longtine
816dfc8ca0 Allow hidden tasks
Signed-off-by: Joel Longtine <joel@dagger.io>
2022-01-12 12:58:27 -07:00
Richard Jones
af2c4793de
logging stderr returning err
Signed-off-by: Richard Jones <richard@dagger.io>
2022-01-12 10:25:56 -07:00
Richard Jones
95542d29cb
returning stderr
Signed-off-by: Richard Jones <richard@dagger.io>
2022-01-12 10:25:56 -07:00
Andrea Luzzardi
fb16ac8b29 vendoring: support multiple modules
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2022-01-11 16:51:54 -08:00
Andrea Luzzardi
282759c0e5 cue modules: move stdlib to pkg/alpha.dagger.io
In preparation for Europa, we will vendor multiple CUE modules:

- `pkg/alpha.dagger.io`: legacy non-europa packages
- `pkg/dagger.io`: core Europa packages
- `pkg/universe.dagger.io`: Europa universe

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2022-01-11 13:16:37 -08:00
Andrea Luzzardi
c5126412b0
Merge pull request #1307 from aluzzardi/engine-loadsecret
engine.#NewSecret support
2022-01-10 12:09:21 -08:00
Joel Longtine
83d6f52e10 Fix nits + cue.mod I let slip through
Signed-off-by: Joel Longtine <joel@dagger.io>
2022-01-07 21:32:15 -07:00
Joel Longtine
a3db716c0a Ensure we can Marshall #Scratch as CUE
Signed-off-by: Joel Longtine <joel@dagger.io>
2022-01-07 16:21:06 -07:00
Joel Longtine
3003b31be3 Make engine.#Scratch a specialization of #FS, rather than a task
Signed-off-by: Joel Longtine <joel@dagger.io>
2022-01-07 15:43:58 -07:00
Andrea Luzzardi
5f840723e2 engine: LoadSecret->NewSecret
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2022-01-07 12:08:37 -08:00
Andrea Luzzardi
6a70271ff2 engine.#LoadSecret support
Fixes #1305

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2022-01-07 12:08:37 -08:00
Joel Longtine
e6bbc5bf01 Fix nits + comments
Signed-off-by: Joel Longtine <joel@dagger.io>
2022-01-06 19:40:38 -07:00
Joel Longtine
6e28c0505f Force another solve, so that the LLB created by the
dockerfile.v0 frontend actually runs, as we expect it to.

Also, enforce Evaluate: true on SolveRequests that run through the Solver

Signed-off-by: Joel Longtine <joel@dagger.io>
2022-01-06 15:34:19 -07:00
Richard Jones
7322359797
MakePath rather than ParsePath
Signed-off-by: Richard Jones <richard@dagger.io>
2022-01-04 14:40:34 -07:00
Richard Jones
b4bcbab311
passing struct to plan.Load
Signed-off-by: Richard Jones <richard@dagger.io>
2022-01-04 11:54:50 -07:00
Richard Jones
c61d47722e
allowing --with to fill root object
Signed-off-by: Richard Jones <richard@dagger.io>
2022-01-04 11:32:05 -07:00
Richard Jones
1d8834b9b1
implemented --with to fill inputs.params
Signed-off-by: Richard Jones <richard@dagger.io>
2022-01-04 10:23:21 -07:00
Joel Longtine
8b4d02540f We need to use the State() function, rather than Result().ToState()
Signed-off-by: Joel Longtine <joel@dagger.io>
2022-01-03 14:34:49 -07:00
Andrea Luzzardi
2982a0dda0 engine: Task PreRun Hook
Tasks now have a PreRun hook that gets called before buildkit kicks in.
Allows to support local access without special casing.

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-12-24 00:59:49 +01:00
Andrea Luzzardi
9c81a155c9 engine: Make paths relative to the CUE file they're defined in
Fixes #1309

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-12-23 13:48:47 -08:00
Richard Jones
2561f942c6
added trimSpace to inputs secrets
Signed-off-by: Richard Jones <richard@dagger.io>
2021-12-23 09:22:50 -07:00
Tom Chauveau
c08f262ef5
Add platform configuration in plan.go to set platform in context.
Signed-off-by: Vasek - Tom C <tom.chauveau@epitech.eu>
2021-12-23 15:29:25 +01:00
Andrea Luzzardi
0e5fb4ec29
Merge pull request #1288 from TomChv/fix/fs-naming 2021-12-23 15:03:39 +01:00
Richard Jones
40e1c9d4fa
fmt.Sprint
Signed-off-by: Richard Jones <richard@dagger.io>
2021-12-22 17:10:33 -07:00
Richard Jones
643d93c35d
ported FetchHTTP to HTTPFetch
Signed-off-by: Richard Jones <richard@dagger.io>
2021-12-22 17:10:33 -07:00
Richard Jones
044c464289
added debug message
Signed-off-by: Richard Jones <richard@dagger.io>
2021-12-22 15:44:16 -07:00
Richard Jones
2b95bf1536
renamed files to avoid camelCase; moved token to common secrets file
Signed-off-by: Richard Jones <richard@dagger.io>
2021-12-22 15:44:16 -07:00
Richard Jones
feb685cf81
fixed issue with disjunction that wouldnt resolve
Signed-off-by: Richard Jones <richard@dagger.io>
2021-12-22 15:44:16 -07:00
Richard Jones
0295dc6340
added support for username:password
Signed-off-by: Richard Jones <richard@dagger.io>
2021-12-22 15:44:16 -07:00
Richard Jones
ee938111c6
conforming to llb api
Signed-off-by: Richard Jones <richard@dagger.io>
2021-12-22 15:44:16 -07:00
Richard Jones
7ca84282be
ported op.#FetchGit to engine.#GitPull
Signed-off-by: Richard Jones <richard@dagger.io>
2021-12-22 15:44:16 -07:00
Sam Alba
47bed011e8
Merge pull request #1291 from aluzzardi/engine-pull-no-imageconfig
engine.#Pull: don't apply image config
2021-12-22 12:16:15 -08:00
Sam Alba
75711545ef
Merge pull request #1289 from aluzzardi/plan-output
engine: Support plan outputs
2021-12-22 10:47:52 -08:00
Andrea Luzzardi
bb93b9d875 engine.#Pull: don't apply image config
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-12-22 16:26:58 +01:00
Andrea Luzzardi
d82baa4c2d engine: task naming consistency
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-12-22 16:19:40 +01:00
Andrea Luzzardi
2f1f055141 engine: Support plan outputs
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-12-22 15:03:54 +01:00
Vasek - Tom C
fd6d1b55fe
Rename mode to permissions in fs.cue
Signed-off-by: Vasek - Tom C <tom.chauveau@epitech.eu>
2021-12-22 14:59:55 +01:00
Joel Longtine
a90ff8ab94 Allow for nil buildkit References
Signed-off-by: Joel Longtine <joel@dagger.io>
2021-12-21 12:10:48 -07:00
Joel Longtine
75d5ab8f01 Initial pass at engine.#Scratch - failing
Signed-off-by: Joel Longtine <joel@dagger.io>
2021-12-21 12:10:45 -07:00
Andrea Luzzardi
7d40e79366 engine.#Build: support auth
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-12-21 10:33:55 -08:00
Andrea Luzzardi
2467fb1920 engine.#Build support
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-12-21 10:33:50 -08:00
Sam Alba
f3caa342e8
Merge pull request #1279 from aluzzardi/europa-output
europa: up: support --output
2021-12-21 09:48:04 -08:00
Andrea Luzzardi
9b2746b2cb
Merge pull request #1259 from TomChv/engine/mkdir
Europa: engine.#Mkdir
2021-12-21 17:53:34 +01:00
Vasek - Tom C
e11cb1b6fd
Add mkdir docs
Signed-off-by: Vasek - Tom C <tom.chauveau@epitech.eu>
2021-12-21 16:33:53 +01:00
Andrea Luzzardi
4feb2c7048 europa: up: support --output
Support `dagger up --output <file.json>` or `-` for stdout. This will
write the computed layer.

Can be used for tests, e.g.

```
run dagger up --output -
assert_output --partial foobar
```

Fixes #1220

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-12-21 15:17:51 +01:00
Sam Alba
9d3cd180a2 stdlib: implemented engine.#Push
Signed-off-by: Sam Alba <samalba@users.noreply.github.com>
2021-12-20 17:16:40 -08:00
Vasek - Tom C
09c427f1cf
Add mkdir task
Signed-off-by: Vasek - Tom C <tom.chauveau@epitech.eu>
2021-12-21 01:14:21 +01:00
Joel Longtine
6c5d7e5da5 remove empty lines
Signed-off-by: Joel Longtine <joel@dagger.io>
2021-12-20 13:13:35 -07:00
Joel Longtine
a429e0cbaf Clean up old code
Signed-off-by: Joel Longtine <joel@dagger.io>
2021-12-20 12:55:35 -07:00
Joel Longtine
1f28ce518d Finalize switch to dagger: task: _name
Signed-off-by: Joel Longtine <joel@dagger.io>
2021-12-20 12:55:35 -07:00
Joel Longtine
1ea035ff16 engine.#Copy
Signed-off-by: Joel Longtine <joel@dagger.io>
2021-12-20 12:55:35 -07:00
Richard Jones
c826794643
Merge pull request #1261 from talentedmrjones/europa-secret-exec
Europa: secret exec
2021-12-20 12:12:07 -07:00
Joel Longtine
a7864a41b4 Complete move to $dagger: task: _name
Signed-off-by: Joel Longtine <joel@dagger.io>
2021-12-20 11:00:43 -07:00
Richard Jones
e6207b45af
fixed gosec issue
Signed-off-by: Richard Jones <richard@dagger.io>
2021-12-20 09:58:26 -07:00
Richard Jones
5ef138fe84 secret exec
Signed-off-by: Richard Jones <richard@dagger.io>
2021-12-20 09:20:19 -07:00
Richard Jones
aa268561bc
fixes issue where dagger hands when input directory does not exist
Signed-off-by: Richard Jones <richard@dagger.io>
2021-12-17 13:37:20 -07:00
Richard Jones
03a740ff1e
input to inputs
Signed-off-by: Richard Jones <richard@dagger.io>
2021-12-17 12:30:35 -07:00
Richard Jones
eebbfcb258
added debug message
Signed-off-by: Richard Jones <richard@dagger.io>
2021-12-17 12:30:35 -07:00
Richard Jones
d43bc7dc53
context -> input
Signed-off-by: Richard Jones <richard@dagger.io>
2021-12-17 12:30:35 -07:00
Richard Jones
4768425037
renamed Import to LocalDirectory
Signed-off-by: Richard Jones <richard@dagger.io>
2021-12-17 12:30:35 -07:00
Sam Alba
b082b1e5bc implemented integration tests for engine.#Pull + moved auth code separately for sharing code with other tasks later
Signed-off-by: Sam Alba <samalba@users.noreply.github.com>
2021-12-17 10:07:33 -08:00
Sam Alba
0be6a4066e plan: added auth support to engine.#Pull
Signed-off-by: Sam Alba <samalba@users.noreply.github.com>
2021-12-17 10:06:58 -08:00
Andrea Luzzardi
82cbea8324 engine: exec: support uid/gid/mask for secret mounts
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-12-17 16:51:46 +01:00
Andrea Luzzardi
e7d8f17884 exec: mount: fs: support readonly mounts
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-12-17 15:39:14 +01:00
Andrea Luzzardi
e5de27f098 engine: exec: support mount concurrency
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-12-17 15:17:24 +01:00
Andrea Luzzardi
12be9a7dd8 WIP: engine.#Exec
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-12-17 15:13:13 +01:00
Joel Longtine
45de510ce0 Clean up old code
Signed-off-by: Joel Longtine <joel@dagger.io>
2021-12-15 10:27:37 -08:00
Joel Longtine
380c15f5f4 engine.#WriteFile
Signed-off-by: Joel Longtine <joel@dagger.io>
2021-12-15 10:27:37 -08:00
Richard Jones
e65b3cfa4a refactored to handle errors better
Signed-off-by: Richard Jones <richard@dagger.io>
2021-12-15 10:22:38 -07:00
Richard Jones
6ca81dacf9 refactored log handling
Signed-off-by: Richard Jones <richard@dagger.io>
2021-12-15 10:22:38 -07:00
Richard Jones
2569e76eeb implemented services unix and npipe complete with test
Signed-off-by: Richard Jones <richard@dagger.io>
2021-12-15 10:22:38 -07:00
Andrea Luzzardi
dd2fef8a2d engine.#ReadFile
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-12-15 14:35:08 +01:00
Andrea Luzzardi
85a4825237 engine: Pull: fix vertex name in logs
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-12-14 15:41:44 +01:00
Andrea Luzzardi
0768ac9f3f compiler: FillFields helper, cleaned up repeated code
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-12-13 16:13:49 +01:00
Andrea Luzzardi
ff6c7d1c1f engine.#Pull implementation
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-12-13 16:13:49 +01:00
Andrea Luzzardi
2b22d1c981 plan: improve log messages
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-12-09 14:17:19 -05:00
Andrea Luzzardi
1d71f77151 engine: fix hidden field path
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-12-09 14:15:19 -05:00
Richard Jones
83b10d4031 refactored finding of cue.mod parent
Signed-off-by: Richard Jones <richard@dagger.io>
2021-12-08 15:28:33 -07:00
Richard Jones
5c9965f10a passings args to cue loader to mimick cue eval
Signed-off-by: Richard Jones <richard@dagger.io>
2021-12-08 15:28:33 -07:00
Andrea Luzzardi
a58ca16c3d plancontext cleanup
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-12-07 14:20:08 -05:00
Andrea Luzzardi
6aa4f6b8b3 secretfile: data -> plaintext
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-12-07 14:02:17 -05:00
Andrea Luzzardi
5b7b1cab79 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>
2021-12-01 17:33:35 -08:00
Andrea Luzzardi
0aea10d23e dagger.#FS support
- Implement dagger.#FS support
- Migrate `context.imports` to dagger.#FS
- Backward compat: dagger.#FS can be passed in lieu of a
  dagger.#Artifact
- For instance, an import (`dagger.#FS`) can be passed to the current
  `yarn.#Package` implementation

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-11-30 12:58:50 -08:00