#Go SDK vs extension

1 messages · Page 1 of 1 (latest)

uncut ferry
#

I've been playing with the Go SDK for the last couple hours and while I think it's awesome, I have a weird feeling about writing the pipeline in Go next to my Go project.

On one hand, it's like tests, so it should be fine.

One the other, there is a lot of repetition in there.
For example: I have a bunch of Go libraries, CLI tools that I generally want to build and publish the same way. I might want to turn some knobs here and there, but the pipelines are mostly the same.

I would assume that reusing a pipeline should be possible by writing extensions and just calling them (preferably not through GraphQL directly though, but some high level language like....CUE....or even YAML (I know, I know))

There are other concerns as well, like adding the Dagger SDK to the go.mod file of a Go library will make it a transitive dependency.

Another idea I had is writing a Go binary using the SDK and just reuse that across projects.

To sum up, I'm trying to find the right balance between using the Go SDK and writing extensions + hiding GraphQL behind a high level language.

This is also an interesting question for use cases where the pipeline is generally managed by a central team and dev teams want to occasionally extend it, but mostly they just want to use the default.

What do you think?

river maple