Hacker News new | ask | show | jobs
by verdverm 757 days ago
Have you seen https://dagger.io? (by the OG creators of Docker)

Fully containerized builds based on BuildKit with a <language> SDK interface. Works really well on both linux and mac

Does the caching, parallel, lazy DAG really well, removes the need for intermediate or base containers to run builds, or more generally containerized workflows

What Dagger enables is you to have your builds run the same locally and in CI. We still want builds that are auto triggered on commits, but we can end the stream of commits to fix CI

1 comments

Writing Go code for builds is not a great plan. I saw how badly this went with Gradle and Java builds, and Go is going to be even more verbose.
You can write python, typescript, or many other languages. I prefer TS because it has curly braces and object deconstruction. I do a lot of devops things in python though, so there is appeal for adopting the python SDK in certain contexts. I agree that Go is not a great choice for builds or scripting more generally, but it does mean you can build Dagger into any Go CLIs you might have, which is intriguing for me in one project I have.

The experimental Dagger Modules allows interlanguage invocation. I'm not a huge fan of the current DX, a bit heavy for my monorepo setups, but once I can cleanly call them from the main entry based workflow, I can see consuming them.