Comment by wtcactus

18 days ago

I agree, but this is kind of an unachievable dream in medium to big projects.

I had this fight for some years in my present work and was really nagging in the beginning about the path we were getting into by not allowing the developers to run the full (or most) of the pipeline in their local machines… the project decided otherwise and now we spend a lot of time and resources with a behemoth of a CI infrastructure because each MR takes about 10 builds (of trial and error) in the pipeline to be properly tested.

It's not an unachievable dream. It's a trade-off made by people who may or may not have made the right call. Some things just don't run on a local machine: fair. But a lot of things do, even very large things. Things can be scaled down; the same harnesses used for the development environment and your CI environment and your prod environment. You don't need a full prod db, you need a facsimile mirroring the real thing but 1/50th the size.

Yes, there will always be special exemptions: they suck, and we suffer as developers because we cannot replicate a prod-like environment in our local dev environment.

But I laugh when I join teams and they say that "our CI servers" can run it but our shitty laptops cannot, and I wonder why they can't just... spend more money on dev machines? Or perhaps spend some engineering effort so they work on both?

  • > You don't need a full prod db, you need a facsimile mirroring the real thing but 1/50th the size.

    My experience has been that the problems in CI systems come from exactly these differences “works on my machine” followed by “oops, I guess the build machine doesn’t have access to that random DB”, or “docker push fails in our CI environment because credentials/permissions, but it works when I run it just on my machine”

  • > It's not an unachievable dream. It's a trade-off made by people who may or may not have made the right call.

    In my experience at work. Anything that demands too much though, collaboration between teams and enforcing hard development rules, is always an unachievable dream in a medium to big project.

    Note, that I don't think it's technically unachievable (at all). I just accepted that it's culturally (as in work culture) unachievable.

Funny enough, the LLMs are allowed to run builds on your local machine. The humans, not any more.

  • But it isn't a question of security. The project would very much like the developers to be able to run the pipelines on their machines.

    It's just that management don't see it as worth it, in terms of development cost and limitations it would introduce in the current workflow, to enable the developers to do that.

    • > But it isn't a question of security.

      Where did i mention security?

      > in terms of development cost and limitations it would introduce in the current workflow

      Well said. "in the current workflow". As in, not "in the development process". Those are unrelated items.