4 ms·
I don't think the artifact approach is unambiguously better. Sure, "consistent deployments on two different Linux systems" is important but you can achieve that
by spellboots 13y ago
I don't think the artifact approach is unambiguously better. Sure, "consistent deployments on two different Linux systems" is important but you can achieve that with rubygems along with the extra flexibility that distributing the packages as source provides.
Two approaches you can take:
1. bundle package will package up all of your installed gems, which you can then deploy with your project.
2. Your build server can install all of your gems, and then you can package up the resulting directory and deploy it - you could also build e.g. an rpm package.
- hapless 13y ago"bundle package" still just bundles the source packages. Installing all of the gems then packaging the resulting directory is an example of an artifact-based approach. I prefer to do it gem-by-gem using 'fpm' in order to maintain better dependency data -- fpm will invoke rpmbuild with the right options to find shared objects and automatically attach correct dependency data for the ruby runtime, C libraries etc