Merge "[wf]Initial Changes for "together" extend"
diff --git a/src/com/mirantis/mk/Ruby.groovy b/src/com/mirantis/mk/Ruby.groovy
index 2e1e494..0af5deb 100644
--- a/src/com/mirantis/mk/Ruby.groovy
+++ b/src/com/mirantis/mk/Ruby.groovy
@@ -8,11 +8,15 @@
* Ensures Ruby environment with given version (install it if necessary)
* @param rubyVersion target ruby version (optional, default 2.6.6)
*/
-def ensureRubyEnv(rubyVersion="2.6.6"){
- if (!fileExists("/var/lib/jenkins/.rbenv/versions/${rubyVersion}/bin/ruby")){
- //XXX: patch ruby-build because debian package is quite old
- sh "git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build || git -C ~/.rbenv/plugins/ruby-build pull origin master"
- sh "rbenv install ${rubyVersion} -sv";
+def ensureRubyEnv(rubyVersion="2.6.6", host_to_lock=""){
+ def lock_name = "install_ruby_system_${host_to_lock}"
+ lock(lock_name) {
+ if (!fileExists("/var/lib/jenkins/.rbenv/versions/${rubyVersion}/bin/ruby")){
+ //XXX: patch ruby-build because debian package is quite old
+ sh "rm -rf ~/.rbenv/plugins/ruby-build"
+ sh "git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build"
+ sh "rbenv install ${rubyVersion} -sv";
+ }
}
sh "rbenv local ${rubyVersion};rbenv exec gem update --system"
}