Commit Graph

132 Commits

Author SHA1 Message Date
Andrea Luzzardi
b9bd250634 client: fix cue error reporting
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-03-31 14:20:02 -07:00
Andrea Luzzardi
993b96dcb4 cue: simplify lookup wrappers
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-03-31 13:40:46 -07:00
Andrea Luzzardi
a8b41c06b7 cue: Use FillPath everywhere since Fill is now deprecated
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-03-31 13:14:36 -07:00
Andrea Luzzardi
e6674b7b7e terminology: rename layout -> plan
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-03-30 19:45:18 -07:00
Andrea Luzzardi
f901918266 terminology: rename route -> deployment
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-03-30 19:33:21 -07:00
Andrea Luzzardi
0f09ba5e87 minor error messages and linter cleanups
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-03-30 18:53:09 -07:00
Andrea Luzzardi
a45f3447b7 env -> route cleanup
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-03-26 16:44:13 -07:00
Andrea Luzzardi
3bfa056b9b tests: fix input test
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-03-26 16:24:22 -07:00
Andrea Luzzardi
ef84d2d431 inputs: use a struct rather than an interface
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-03-26 14:11:56 -07:00
Andrea Luzzardi
e08e64b311 store: keep an in-memory index of routes, support lookup by path
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-03-25 19:08:52 -07:00
Andrea Luzzardi
a3b84386bc store routes as directories
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-03-25 15:50:19 -07:00
Andrea Luzzardi
0e21144529 tests: fix input tests
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-03-25 15:46:37 -07:00
Andrea Luzzardi
9fec69f3a0 make store a struct and add tests
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-03-25 22:29:11 +00:00
Andrea Luzzardi
524f77df65 tests: fix unit tests
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-03-25 22:29:11 +00:00
Sam Alba
7ad541feb1 implemented new, up, list
Signed-off-by: Sam Alba <sam.alba@gmail.com>
2021-03-25 22:29:11 +00:00
Andrea Luzzardi
43956e38cc separate Store from State
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-03-25 22:29:11 +00:00
Andrea Luzzardi
cba524eb0f merge Route into Env, rebase dagger compute to use the new API
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-03-25 22:29:11 +00:00
Sam Alba
43b3af6fff init local route dir
Signed-off-by: Sam Alba <sam.alba@gmail.com>
2021-03-25 22:29:11 +00:00
Solomon Hykes
7bf05d3cc9 CLI backend to manage layout and inputs
Signed-off-by: Solomon Hykes <sh.github.6811@hykes.org>
2021-03-25 22:29:11 +00:00
Solomon Hykes
37bf20e24b Expand mockup backend for CLI
Signed-off-by: Solomon Hykes <sh.github.6811@hykes.org>
2021-03-25 22:29:11 +00:00
Sam Alba
84188535f3 implemented basic commands: up, down, new, query, list
Signed-off-by: Sam Alba <sam.alba@gmail.com>
2021-03-25 22:29:11 +00:00
Solomon Hykes
c33dc5138f Mockup CLI backend API
Signed-off-by: Solomon Hykes <sh.github.6811@hykes.org>
2021-03-25 22:29:10 +00:00
Andrea Luzzardi
9c4cb1b15a pipeline: Fix panic for empty pipelines
`Solve() of `llb.Scratch()` returns a `nil` reference. This causes
Pipelines with no operations to panic when interacted with, because of
`nil` pointer de-reference.

Mitigates #189 and #184

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-03-22 16:30:17 -07:00
Andrea Luzzardi
b8de4e5049 cache fix: stable ordering of maps (Env, Mount, ...)
Maps were causing the same Pipeline to randomly produce slightly different LLB
on each run (because they are represented as an array in LLB, wheras
they're a map in CueLLB).

This forces every Cue field iteration (env, mount, etc) to be
predictable by using stable sorting.

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-03-19 15:07:01 -07:00
Andrea Luzzardi
e6bb3f12f4 inputs decryption using SOPS
- Add support for --input-json and --input-yaml (plaintext)
- Input files can optionally be encrypted using sops, with transparent
  decryption by dagger

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-03-18 17:43:13 -07:00
Andrea Luzzardi
5b1e7eeacf pipeline: FetchGit: make a copy of the content to avoid caching issues
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-03-18 11:18:06 -07:00
Tony Worm
3dab86694e impl test, log patterns when .daggerignore found, lint, fix stdlib/file test imports
Signed-off-by: Tony Worm <tony@hofstadter.io>
2021-03-18 12:38:50 -04:00
Tony Worm
a1ba7aa59c implement .daggerignore
Signed-off-by: Tony Worm <tony@hofstadter.io>
2021-03-17 19:55:28 -04:00
Andrea Luzzardi
b15c841a24 pipeline: Use result rather than source LLB of sub-pipelines
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-03-12 13:41:24 -08:00
Andrea Luzzardi
c923e5042b cleanup: solver/fs
- Solver: Encapsulates all access to Buildkit. Can solve plain LLB, invoke external frontends (for DockerBuild) and export (for ContainerPush)
- FS (now BuildkitFS) implements the standard Go 1.16 io/fs.FS interface and provides a read-only filesystem on top of a buildkit result. It can be used with built-ins such as fs.WalkDir (no need to have our own Walk functions anymore)
- Moved CueBuild into compiler.Build since it no longer depends on Buildkit. Instead it relies on the io/fs.FS interface, which is used both for the base config and the stdlib (go:embed also uses io/fs.FS). Overlaying base and the stdlib is now done by the same code.

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-03-12 13:38:49 -08:00
Andrea Luzzardi
c35eca99e1 push container support
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-03-11 16:41:19 -08:00
Andrea Luzzardi
3628dbda84 flow cleanup: separate TaskFunc from RunnerFunc
Extracted from #140

This will help be more flexible in what gets executed and how (e.g. for
running tests for instance)

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-03-10 15:01:37 -08:00
Solomon Hykes
7a77466a66 DX: change "#dagger: compute: " to "#compute: "
Signed-off-by: Solomon Hykes <sh.github.6811@hykes.org>
2021-03-06 19:39:22 -08:00
Sam Alba
3f445f2421
Merge pull request #158 from dagger/fix-mount-tmpfs
Fix mount tmpfs
2021-03-04 18:32:28 -08:00
Sam Alba
514dde4e6d renamed mount arg tmp to tmpfs
Signed-off-by: Sam Alba <sam.alba@gmail.com>
2021-03-04 14:03:50 -08:00
Andrea Luzzardi
256f373a52
Merge pull request #154 from dagger/opentracing
opentracing support
2021-03-04 11:04:42 -08:00
Andrea Luzzardi
f35df0475b opentracing support
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-03-04 10:45:20 -08:00
Sam Alba
5fed74bc55
Merge pull request #153 from dagger/example-aws-monitoring
AWS Cloudformation + HTTP monitoring example
2021-03-03 18:36:30 -08:00
Sam Alba
ee7bb3c3f5 implemented "write-file" and "mkdir" ops
Signed-off-by: Sam Alba <sam.alba@gmail.com>
2021-03-03 17:24:21 -08:00
Andrea Luzzardi
14ff14ea4f automatically start/upgrade buildkitd
- Automatically start a buildkit daemon if no BUILDKIT_HOST is
  provided (and if not already started)
- Customization of BUILDKIT_HOST is still possible, just like before
- Automatically upgrade the managed daemon to the version used by dagger
  if necessary
- Add CI test to make sure the managed buildkit and the vendored
  buildkit versions match

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-03-02 18:37:30 -08:00
Andrea Luzzardi
4bd0ffd3fc FetchContainer: Inject Docker image metadata into LLB
Fixes #130

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-02-25 14:47:46 -08:00
Andrea Luzzardi
074e47d9c0 logs: clean up logs for canceled tasks
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-02-24 18:48:55 -08:00
Andrea Luzzardi
a8df284e9b local: improve log message
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-02-24 17:29:51 -08:00
Andrea Luzzardi
b2bc801cd0 fix caching issues with Local
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-02-24 15:38:49 -08:00
Andrea Luzzardi
1fcb36113f cleanup log messages
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-02-23 16:37:45 -08:00
Andrea Luzzardi
79b66e82fc logs: extract cue path from buildkit solve status
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-02-23 15:39:52 -08:00
Andrea Luzzardi
2ae395843e encode cue paths in LLB ops
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-02-23 15:39:52 -08:00
Andrea Luzzardi
bc2dae7e32 docker build support
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-02-22 14:14:51 -08:00
Andrea Luzzardi
890fdb4176 performance: reduce the number of fills
- Remove unnecessary Fill() in Export()
- Change `set()` and the way we store outputs so we don't fill
  intermediaries as much
- WIP: Scan the tree only once. Changed LocalDirs to use cueflow rather than
  doing our own Walk. In a follow up we should use the same flow
  instance.

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-02-19 14:04:40 -08:00
Andrea Luzzardi
3ddd967291 local: fix when include is not specified
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-02-17 17:19:49 -08:00