Hacker News .hnnew | past | comments | ask | show | jobs | submitlogin

> Dev/CI drift: instead of writing the same automation twice - once in a CI-specific configuration, and again in a Docker compose file, shell script or Makefile - simply write a Dagger plan once, then run it in all environments.

Working on developer tooling, a lot of times I would hear from people that they wanted CI and dev to be 100% the same and wanted a simple "run all CI locally" command to pre-check before posting.

Unsure how Dagger is handling this but my concerns with the scenario I described

- CI normally divides things up into multiple jobs for speed which breaks the shared "do everything" command

- Commands need to scale down to fast iteration as people fix things

- Generally people get the best integration by using the underlying wrapped tools directly due to pre-commit or IDE integeration



> I would hear from people that they wanted CI and dev to be 100% the same and wanted a simple "run all CI locally" command to pre-check before posting.

This is exactly what developers should want. It's the most efficient workflow for a dev, because we then don't have to think at all. This is a huge dev efficiency anti-pattern: thinking your code is good to merge, pushing the change, and then finding out 10-20mins later that CI isn't happy for some reason that wasn't natural to check locally.

The thesis in the following is the way: https://gregoryszorc.com/blog/2021/04/07/modern-ci-is-too-co...


I don't understand why folks can't write everything in a makefile and then call make targets in CI.


That is a common pattern. Dagger is essentially a more modern iteration on that pattern.


It's mostly for speed, if the tasks are defined separately then a smart CI system can cache the results and avoid rerunning some of them.


This is the way. Writing your CI in groovy is a fast track to hell.


I hate makefile syntax even more than I hate yaml




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: