Remix.run Logo
monkaiju a day ago

Maybe for big companies that irresponsibly vendor-locked themselves, but I work at a SMB (~60 employees) and we switched to Forgejo in a couple days

guywithahat a day ago | parent [-]

I would not call it irresponsible. If you have a big, long running project you're going to want to develop complex pipelines and build processes to help with development and testing. This will save a lot of time and create a more consistent workflow, but switching vendors can require redoing work that was built over years.

rogerrogerr a day ago | parent | next [-]

> you're going to want to develop complex pipelines and build processes to help with development and testing

Opinion: Complex build processes are great. Complex _pipelines_ are a trap. I'm in a position to see the output of a lot of teams at a very large company. The teams that have complex build processes _that they can run locally_, and then have some trivial CI yaml to run the build, are doing great.

The teams that designed their build around CI are brittle and eventually end up in a state where they can _only_ do some parts of their build on CI.

IME it's worth it to set very hard boundaries shaped like: (1) Everything needs to be able to be run locally (usually in a devcontainer), (2) CI config shall be stupid simple. If you have more than like two lines in a script section, it goes into a Tools/Build script file that must work locally and is just called in a one-line CI script.

#1 guarantees you can operate without CI, and #2 guarantees you can move CI providers trivially.

megagpt2 4 hours ago | parent | prev | next [-]

GitHub encourages this by using an arcane pipeline configuration format that could have been a shell script and has no way to run it outside GitHub.

cube00 a day ago | parent | prev | next [-]

>develop complex pipelines and build processes to help with development and testing. This will save a lot of time and create a more consistent workflow,

Beware the trap of making the pipeline so complicated it's like code except you can't debug or unit test like regular code, and it takes an hour between attempts to see if a change worked.

cyberax a day ago | parent | prev [-]

If only we had a way to run code in a pre-defined isolated environment that can hide most of the differences of the actual hardware...

Oh, we do have Docker/Podman?

Then why not use _them_ to define your build pipelines? Bonus points: you can run them locally without tearing out your hair. And you can use normal scripting languages and task runners (taskfiles, good old makefiles, Ninja, etc.) for sequencing.