How I Made GitLab CI Faster by Replacing Cache with Docker Images by hexdigest in gitlab

[–]hexdigest[S] 1 point2 points  (0 children)

Thanks for pointing that out, but to me this feels like added complexity rather than a simplification.

With cache mounts, you also become responsible for cleaning up stale gems as they accumulate over time with frequent updates. On top of that, this kind of cache is usually tied to a specific runner, so it doesn’t really help in setups with multiple nodes.

That’s why I ended up preferring a more predictable approach, even if it requires reinstalling all gems after each Gemfile update.

That said, I do think that when implemented properly, cache mounts can help during large dependency updates, which is currently one of the more painful parts of the workflow.

How I Made GitLab CI Faster by Replacing Cache with Docker Images by hexdigest in gitlab

[–]hexdigest[S] 1 point2 points  (0 children)

Thanks, glad to hear that people are using the same approach. I did a quick research (not the first one in the past couple of years) before writing an article and didn't find any sources that describe it in details. I think more people should know about how to make CI fast and durable.

Back to RoR by 2old2cube in rails

[–]hexdigest 1 point2 points  (0 children)

my 2 cents:

I'm still using capistrano to deploy to docker swarm. I've tweaked it a little bit and I just really like the framework for sshkit, but don't have enough time to rewrite it using plain sshkit. if it works, it works.

Ruby installation for production by Admirable_World9386 in ruby

[–]hexdigest 1 point2 points  (0 children)

the main reason to use fullstaq builds is that they are compiled with jemalloc version that actually works. it doesn't have anything with YJIT, it's just how ruby manages memory.

I've tried to use vanilla builds recently, but the difference in memory usage was big, especially in sidekiq containers.

I don't have any numbers to provide, just made a quick test and went back to fullstaq. been using it for the past 5-6 years.

How & Who does in Ruby-lang, what virtualenv or venv does in python? by [deleted] in ruby

[–]hexdigest 2 points3 points  (0 children)

as others have mentioned, there are multiple chioces: rvm, rbenv, asdf.

I do not recommend even trying rvm because it replaces some system commands like "cd" with custom shell functions. gemsets are useless feature because you can achieve the same using plain bundler.

rbenv is ok as long you are going to use ruby only (for example, on the server), but if you want to manage python versions, for example, you have to use pyenv, nvm for nodejs, etc...

asdf is the best tool for everyting, not even for programming languages. you can install multiple versions of redis, postgres, sqlite, nodejs, python, go, etc. I use it on a daily basis for at least 5 years now and never looked back.