Commit Graph

242 Commits

Author SHA1 Message Date
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
6bedfb7c63
Merge pull request #1162 from aluzzardi/europa-context
europa: new execution engine and #Plan support
2021-11-29 16:14:14 -08:00
Andrea Luzzardi
81ec746d2c core: component -> task
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-11-24 16:58:24 -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
cdcb09126b client: take localdirs as argument
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-11-24 16:13:30 -08:00
Andrea Luzzardi
b5e2ba63c6 runner: fix empty CUE value check
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-11-24 16:08:40 -08:00
guillaume
d9669216b6 Fix regression in error printing when Wrong Cue parsing
Signed-off-by: guillaume <guillaume.derouville@gmail.com>
2021-11-23 23:47:57 +01:00
Andrea Luzzardi
f7820b10e6
Merge pull request #1142 from aluzzardi/europa-plancontext
europa: prepare the transition to `#Plan.context`
2021-11-19 15:49:27 -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
Tom Chauveau
9943085ef3
dagger mod get doesn't need an environment anymore to work.
Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-11-19 14:30:53 +01:00
Andrea Luzzardi
d065a1f627 Revert "Improve version checking to also check universe"
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-11-09 18:58:09 -08:00
Sam Alba
a147f130ee cmd/input: added auto-detection for Windows named pipe
Signed-off-by: Sam Alba <samalba@users.noreply.github.com>
2021-11-08 17:17:33 -08:00
Sam Alba
6acc7e2c4d
Merge pull request #1085 from TomChv/feat/check-universe-version
Improve version checking to also check universe
2021-11-08 15:23:59 -08:00
Tom Chauveau
a63c4e989a
Change "arch" into "platform" because it's more accurate.
Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-11-05 16:21:21 +01:00
Sam Alba
954192118e
Merge pull request #1074 from TomChv/feat/pipeline-platform-config
Handle running architecture configuration
2021-11-01 16:14:20 -07:00
Tom Chauveau
4a461a0021
Fix engine to don't write architecture in values.yaml if no one provided.
Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-10-30 12:07:33 +02:00
Tom Chauveau
8eb01d850b
Fix context issue on dagger version
Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-10-29 21:57:16 +02:00
Tom Chauveau
c808f4e828
Add tracking on dagger version
Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-10-29 19:34:37 +02:00
Tom Chauveau
5f0a4202c9
Complete version checking with getUniverseCurrentVersion
Dagger now compare the remote universe version with the one written
in dagger.mod.

I've also added logs to easily debug code

Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-10-29 19:31:59 +02:00
Tom Chauveau
927762481a
Fix dagger mod get to stop requiring environment
Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-10-29 18:52:32 +02:00
Tom Chauveau
a3b6940d0b
Improve version checking to also check universe
In the future, universe will not be embedded anymore in dagger,
instead, it will be remotely vendor from `dagger/universe` repository.

To make sure that users always use the latest universe version, the
version checking now also verify that universe is not outdated.
If universe needs an update, a message is printed to standard output.

Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-10-29 17:18:45 +02:00
Tom Chauveau
e9de597654
Update dagger new cmd to specify architecture when creating an environment
Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-10-22 21:54:18 +02:00
Tom Chauveau
caa03a37cc
Update dagger engine to uses a given architecture instead of default one.
Check #1071 for more details

Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-10-22 21:02:12 +02:00
Sam Alba
779dda1aca mod: added basic logging + context in sub libs
Signed-off-by: Sam Alba <samalba@users.noreply.github.com>
2021-10-22 11:02:34 -07:00
Sam Alba
e9ca8f38e6 Vendoring improved
* update dagger init with package manager downloading stdlib

Signed-off-by: Tihomir Jovicic <tihomir.jovicic.develop@gmail.com>

* split mod get and update functions

Signed-off-by: Tihomir Jovicic <tihomir.jovicic.develop@gmail.com>

* write to package checksum to dagger.sum when installing/updating

Signed-off-by: Tihomir Jovicic <tihomir.jovicic.develop@gmail.com>

* encure checksums are valid when compiling input

Signed-off-by: Tihomir Jovicic <tihomir.jovicic.develop@gmail.com>

* remove references to github.com/tjovicic in docs 1010 and 1011

Signed-off-by: Tihomir Jovicic <tihomir.jovicic.develop@gmail.com>

* refactor mod get command

Signed-off-by: Tihomir Jovicic <tihomir.jovicic.develop@gmail.com>

* update logic of moving dir when installing packages

Signed-off-by: Tihomir Jovicic <tihomir.jovicic.develop@gmail.com>

* fix linting errors

Signed-off-by: Tihomir Jovicic <tihomir.jovicic.develop@gmail.com>

* revert changes to 1010 docs

Signed-off-by: Tihomir Jovicic <tihomir.jovicic.develop@gmail.com>

* updating error log line in mod/get

Signed-off-by: Tihomir Jovicic <tihomir.jovicic.develop@gmail.com>

* fix ci tests when using vendoring

Signed-off-by: Tihomir Jovicic <tihomir.jovicic.develop@gmail.com>

* update alpha.dagger.io version to v0.1

Signed-off-by: Tihomir Jovicic <tihomir.jovicic.develop@gmail.com>

* fix mod repo test

Signed-off-by: Tihomir Jovicic <tihomir.jovicic.develop@gmail.com>

* return error if package already installed

Signed-off-by: Tihomir Jovicic <tihomir.jovicic.develop@gmail.com>

* remove already installed packages when installing

Signed-off-by: Tihomir Jovicic <tihomir.jovicic.develop@gmail.com>

* fix issue when vendoring stdlib

Signed-off-by: Tihomir Jovicic <tihomir.jovicic.develop@gmail.com>

* update mod command with filelock while installing

Signed-off-by: Tihomir Jovicic <tihomir.jovicic.develop@gmail.com>

* fix linting errors

Signed-off-by: Tihomir Jovicic <tihomir.jovicic.develop@gmail.com>

* fix path of mod lock file

Signed-off-by: Tihomir Jovicic <tihomir.jovicic.develop@gmail.com>

Co-authored-by: Tihomir Jovicic <tihomir.jovicic.develop@gmail.com>

Signed-off-by: Sam Alba <sam.alba@gmail.com>
2021-10-13 15:25:30 -07:00
Andrea Luzzardi
82fc36c76b tty logger: show multi-line messages
Support multi-line log messages rather than truncating and correctly
account terminal height.

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-10-06 11:51:10 -07:00
Andrea Luzzardi
dd1bf18ec2 logger: TTY logs support (live update)
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-10-05 15:38:34 -07:00
Guillaume de Rouville
a7ca7e11ba Fix/dagger edit: wrong dir Path leads to infinite loop
Signed-off-by: Guillaume de Rouville <guillaume.derouville@gmail.com>
2021-09-26 20:56:22 +02:00
Richard Jones
7061ac816e
changed workspace to project
Signed-off-by: Richard Jones <richard@dagger.io>
2021-09-23 12:02:57 -06:00
Andrea Luzzardi
5480fb991d dagger.#Socket support
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-09-17 11:53:09 -07:00
Sam Alba
5de40f10bd
Merge pull request #969 from yamamoto-febc/flag-name-typo
Fix typos in flag names and error messages
2021-09-14 08:47:26 -07:00
Guillaume de Rouville
0273fead4d fix/bug: infinite loop non-existent input dir path
Signed-off-by: Guillaume de Rouville <guillaume.derouville@gmail.com>
2021-09-14 16:26:27 +02:00
Kazumichi Yamamoto
9dda32a6c6 Fix typos in flag names and error messages
Signed-off-by: Kazumichi Yamamoto <yamamoto.febc@gmail.com>
2021-09-14 20:34:16 +09:00
Sam Alba
47ef0a4c2a
Merge pull request #862 from tjovicic/package-manager
First version of package manager
2021-08-27 15:25:20 -07:00
Guillaume de Rouville
6fe0ec367a dagger input bool implementation
Signed-off-by: Guillaume de Rouville <guillaume.derouville@gmail.com>
2021-08-24 16:07:28 +02:00
Tihomir Jovicic
90d902fa77 fix mod get command tests
Signed-off-by: Tihomir Jovicic <tihomir.jovicic.develop@gmail.com>
2021-08-24 11:00:24 +02:00
Tihomir Jovicic
a6a6037d01 rename dagger.mod.cue to dagger.mod and remove the need for module name
Signed-off-by: Tihomir Jovicic <tihomir.jovicic.develop@gmail.com>
2021-08-24 10:16:29 +02:00
Tihomir Jovicic
8aaaacc9da Add package manager usage docs
Signed-off-by: Tihomir Jovicic <tihomir.jovicic.develop@gmail.com>
2021-08-23 12:30:19 +02:00
Tihomir Jovicic
620a37715c create dagger.mod.cue file automatically
Signed-off-by: Tihomir Jovicic <tihomir.jovicic.develop@gmail.com>
2021-08-23 06:50:59 +02:00
Tihomir Jovicic
85e870f8dd Merge branch 'main' into package-manager 2021-08-23 06:37:47 +02:00
Tihomir Jovicic
a3d2f72ea3 create dagger.mod.cue file automatically
Signed-off-by: Tihomir Jovicic <tihomir.jovicic.develop@gmail.com>
2021-08-23 06:29:36 +02:00
Andrea Luzzardi
283a5f76a8
Merge pull request #901 from TomChv/fix/cli-global-flags
Fix env & log global flags are no longer hidden.
2021-08-20 17:16:53 +02:00
Tom Chauveau
8a7b5e1b63
Fix env & log global flags are no longer hidden.
There was a hack in `version.go` that was hiding unused flag from
that command.
The problem is that the effect has spread to all commands.

I've removed that trick to correctly display all flags because it's
important for users to know how select an environment and configure
log format.

Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-08-20 17:06:22 +02:00
Andrea Luzzardi
b8dcc02bb8 performance: compile CUE client side
Restructured the compile logic to happen on the CLI instead of the
BuildKit frontend.

- Avoid uploading the entire workspace to BuildKit on every compilation
- Let the CUE loader scan the files instead of going through the
  BuildKit filesystem gRPC APIs.

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
2021-08-20 16:34:49 +02:00
Tom Chauveau
3c1c0f13f6
Improve dagger input UX (solve #874)
Add new argument `--show-optional` to `dagger input list`.
Now by default, `dagger input list` will only show required input.
To get all inputs (including those with default value), you can use
that new argument.

Test has been updated to support changes.

Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
2021-08-17 17:13:30 +02:00
Tihomir Jovicic
6a0b74416a support upgrading existing packages with empty mod get command
Signed-off-by: Tihomir Jovicic <tihomir.jovicic.develop@gmail.com>
2021-08-12 10:48:13 +02:00