157 Commits

Author SHA1 Message Date
Frederick F. Kautz IV
e595e1d833 variables shouldn't shadow packages
Signed-off-by: Frederick F. Kautz IV <fkautz@alumni.cmu.edu>
2021-04-11 16:30:48 -07:00
Andrea Luzzardi
60db93a246 client: pass through the deployment directly
we can't serialize Cue in a lossless way. The current architecture has
the frontend serialize the state (plan, input, computed) to Cue files,
then the client loads them back. We lose information by doing this, and
therefore the merge fails.

This change removes the abstraction so that we operate directly on the
cue.Instance.

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-04-08 18:11:06 -07:00
Andrea Luzzardi
8b0eea6e7f compiler: simplify InstanceMerge
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-04-08 17:22:25 -07:00
Andrea Luzzardi
b4c530653c compiler: fix data race issue
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-04-08 16:30:55 -07:00
Andrea Luzzardi
e54f1b0c3a store only computed values in compute layer
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-04-07 19:37:48 -07:00
Andrea Luzzardi
5381d0bfe1 up: store outputs and merge in query
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-04-07 19:05:09 -07:00
Andrea Luzzardi
5a6a8c0ff6 store: fix duplicate paths
A deployment with multiple times the same path would appear repeated in
`LookupDeploymentByPath`.

This change indexes paths as a map rather than a list, thus avoiding the
issue altogether.

Fixes #276

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-04-05 14:28:59 -07:00
Frederick F. Kautz IV
cb59e23cd4 fix build break
Signed-off-by: Frederick F. Kautz IV <fkautz@alumni.cmu.edu>
2021-04-04 20:00:22 -07:00
Andrea Luzzardi
0c79488a18
Merge pull request #268 from dagger/deployment-multi-path
store: support multiple deployments per path
2021-04-02 17:54:11 -07:00
Sam Alba
a79e13a35c test: fixed input_test.go
Signed-off-by: Sam Alba <sam.alba@gmail.com>
2021-04-02 17:32:05 -07:00
Sam Alba
ce6ce871ab moved abs path to DirInput
Signed-off-by: Sam Alba <sam.alba@gmail.com>
2021-04-02 17:26:19 -07:00
Sam Alba
a799dd05d7 cli: moved abs path resolve to input.go
Signed-off-by: Sam Alba <sam.alba@gmail.com>
2021-04-02 17:14:01 -07:00
Sam Alba
d3fc31ab57 fixed inputs when input target is overriden
Signed-off-by: Sam Alba <sam.alba@gmail.com>
2021-04-02 16:47:49 -07:00
Andrea Luzzardi
33a7770459 store: support multiple deployments per path
- Add support for multiple deployments per path in the Store
- Add a bunch of tests
- Change the Lookup deployment API
- Add disambiguation in the CLI commands

Fixes #231

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-04-02 16:40:20 -07:00
Sam Alba
540f373993
Merge pull request #265 from dagger/query-formats
dagger query [--format cue|json|text|yaml] (default is json)
2021-04-02 16:20:39 -07:00
Andrea Luzzardi
8a4aa4d42b pipeline: #compute -> #up
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-04-02 16:08:15 -07:00
Solomon Hykes
e2e56a5143 dagger query [--format cue|json|text|yaml] (default is json)
Signed-off-by: Solomon Hykes <sh.github.6811@hykes.org>
2021-04-02 23:05:08 +00:00
Andrea Luzzardi
33d5add54b deployment API cleanup
The API was a bit confusing with code mixing the usage of Deployment and
DeploymentState.

This change marks a clear separation:

- Client is the only piece of code manipulating *Deployment
- CLI commands can manipulate DeploymentState objects and pass them to
  Client

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-04-02 15:30:38 -07:00
Andrea Luzzardi
2657a516b3 fix lint error
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-04-02 14:29:17 -07:00
Andrea Luzzardi
5ae5b1bb50 fix dagger input dir
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-04-01 23:17:38 -07:00
Andrea Luzzardi
526d3af364 state: store in ~/.dagger
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-04-01 23:00:30 -07:00
Andrea Luzzardi
d848afe7a9 store: fix root directory
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-04-01 22:16:29 -07:00
Sam Alba
fb9aae38ef cmd/new: added support for plan-git option
Signed-off-by: Sam Alba <sam.alba@gmail.com>
2021-04-01 17:46:42 -07:00
Andrea Luzzardi
429820036f tests: add basic cli tests
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-04-01 16:46:05 -07:00
Sam Alba
c583dc20ef implemented ClientDoFunc callback to make the client.Up code reusable for other client actions
Signed-off-by: Sam Alba <sam.alba@gmail.com>
2021-03-31 16:32:15 -07:00
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