Commit Graph

23 Commits

Author SHA1 Message Date
Marcos Nils
27d878456f
Improve tty error logging when buildkit vertex is unknown (#2188)
* Improve tty error logging when buildkit vertex is unknown

Creates a generic "system" group in the tty output which captures
buildkit events that report a non-dagger vertex name. This happens
currently when using core.#Dockerfile actions since Dagger delegates the
LLB generation to buildkit through it's frontend and we don't get
meaningful events that we can correlate from Dagger's side

Signed-off-by: Marcos Lilljedahl <marcosnils@gmail.com>
2022-04-18 21:50:34 -03:00
Marcos Lilljedahl
d80acf805b Add experimental way to set a target platform when building
Add an --experimental-platform flag to the do command to allow
overriding the default auto-detected build platform until we find the
time to think about the definitive multi-platform builds UX

Signed-off-by: Marcos Lilljedahl <marcosnils@gmail.com>
2022-04-05 18:24:14 -03:00
Marcos Lilljedahl
34c7a2ff12 Automatically set target platform based on client architecture
Set the default platform based on the client's OS and architecture. This
function is the same one that buildkit uses (https://github.com/moby/buildkit/blob/master/frontend/dockerfile/builder/build.go#L100-L102) to set the default build target platform

Signed-off-by: Marcos Lilljedahl <marcosnils@gmail.com>
2022-04-05 15:30:11 -03:00
Helder Correia
7a8153910c
Add export and load for dagger images
Signed-off-by: Helder Correia <174525+helderco@users.noreply.github.com>
2022-03-25 15:04:29 -01:00
Solomon Hykes
c2766c265b Merge dagger.io/dagger/engine into dagger.io/dagger
Signed-off-by: Solomon Hykes <solomon@dagger.io>
2022-02-16 19:40:28 +00: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
c7ffdf788f WIP: Fix Europa yarn
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2022-01-19 11:17:05 -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
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
Joel Longtine
d1fb5bc157 - Clean up plancontext/fs.go code
- remove `@dagger(notimplemented)` from `engine.#Scratch`

Signed-off-by: Joel Longtine <joel@dagger.io>
2021-12-22 14:42:10 -07: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
86366b1f11 Change Europa Core types ids
Signed-off-by: Joel Longtine <joel@dagger.io>
2021-12-16 15:33:37 -07:00
Andrea Luzzardi
4b7a143cc6 stdlib: move core definitions to engine package
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-12-07 16:00:56 -05:00
Andrea Luzzardi
a58ca16c3d plancontext cleanup
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-12-07 14:20:08 -05:00
Andrea Luzzardi
c881bc2dba plancontext: use helpers to determine if CUE value is secret/fs/service
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-12-07 14:16:14 -05:00
Andrea Luzzardi
201ac391b4 check for concreteness in specialized types
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-12-07 14:03:07 -05:00
Andrea Luzzardi
337ed0d1cc remove hardcoded stdlib path
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-12-01 17:33:35 -08: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
Andrea Luzzardi
2a4db167e4 runtime: new execution engine
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-11-24 16:51:52 -08:00
Andrea Luzzardi
2beace385c add test for plancontext
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-11-19 11:29:38 -08:00
Andrea Luzzardi
a61e8dcb62 prepare the transition to #Plan.context
This change helps the transition between `dagger input` and `#Plan.context`.

In summary, the codebase now relies on a *context* for execution with mapping to *IDs*.
In the future, *context* will come from a `#Plan.context`.
In the meantime, a bridge converts `dagger input` to a plan context. This allows both *old* and *new* style configurations to co-exist with the same underlying engine.

- Implement `plancontext`. Context holds the execution context for a plan. Currently this includes the platform, local directories, secrets and services (e.g. unix/npipe).
- Contextual data can be registered at any point. In the future, this will be done by `#Plan.context`
- Migrated the `dagger input` codebase to register inputs in a `plancontext`
- Migrated low-level types/operations to the *Context ID* pattern.
  - `dagger.#Stream` now only includes an `id` (instead of `unix` path)
  - `dagger.#Secret` still includes only an ID, but now it's based off `plancontext`
  - `op.#Local` now only includes an `id` (instead of `path`, `include`, `exclude`.

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-11-19 11:29:38 -08:00