Replies: 3 comments 15 replies
-
Definitely interesting. /cc @marcosnils -- we were briefly discussing no/low code adoption yesterday, this approach could be it (actions are available to run before you write a single line of code). I think the gap to make this possible is smaller than it appears. I don't think we would need to generate schemas on the fly, GraphQL is flexible enough that a static schema works. For instance for # List the targets
make {
targets {
name
}
}
# Run `make test`
make {
target(name: "test") {
run {
stdout
}
}
} |
Beta Was this translation helpful? Give feedback.
-
One quick note to self and @aluzzardi about implementation details: this goal seems like it will require that we support subresolvers in user actions (i.e. fields not directly under |
Beta Was this translation helpful? Give feedback.
-
Really like this idea. I guess specific tasks wouldn't work out of the box:
|
Beta Was this translation helpful? Give feedback.
-
Overview
The design of Cloak opens the possibility of zero-code adoption, where a new user gets value from Dagger without having to write any code. That would make Dagger much easier to learn and adopt, which would greatly help with adoption.
This would be made possible by 1) implementing a system of modular runtimes, and 2) developing "drop-in runtimes" capable of natively running a project's pre-existing automation without modification, including:
Onboarding path
The complete onboarding path could look something like this:
Design considerations
I’m assuming these runtimes will need to implement a special hook (itself running on dagger of course) that takes a source repo as input, and outputs a graphql schema exposing all the actions, artifacts and services that it found.
Presumably the Go & Typescript SDKs (which do require coding to use, by definition) would ship with a runtime of their own, implementing the same hooks. Perhaps their implementation will be very simple (if there is no boilerplate to generate) or become more advanced (if code and/or schema generation is involved). This matches common use of the terms “runtime” and “sdk”, as in “the JDK vX ships with the JRE vY”.
Beta Was this translation helpful? Give feedback.
All reactions