Optimizing for local-first checking is 100% the way to go, and should be used much more widely I think.
I have done a similar thing using simple makefiles though, collecting more complex chains of tasks into a "meta rule" in Make and just calling that from whatever CI config we're using.
I have also slowly transitioned into something similar - using justfiles instead of make. I have `just prerequisites`, `just lint`, `just build` in all of my projects.
pixie's lockfile might be the most interesting part.
Same but using mise. It is so nice to define all runtime/build time dependencies for both dev and production builds in one place and then have a task runner that builds everything for you!
Optimizing for local-first checking is 100% the way to go, and should be used much more widely I think.
I have done a similar thing using simple makefiles though, collecting more complex chains of tasks into a "meta rule" in Make and just calling that from whatever CI config we're using.
I have also slowly transitioned into something similar - using justfiles instead of make. I have `just prerequisites`, `just lint`, `just build` in all of my projects. pixie's lockfile might be the most interesting part.
Look into mise. It’s basically just, but it also installs runtimes/build deps for you. It also has lockfiles.
Went all in on just in a previous role. All the Jenksfile shrunk to manageable complexity, except the not just ones.
Same but using mise. It is so nice to define all runtime/build time dependencies for both dev and production builds in one place and then have a task runner that builds everything for you!
Is there any way to cache the dependency installation step on github actions for example?
I supposed you could cache whatever directory it installs to? Would be great to see an example
Dagger seems more fit, but more complex for sure.