Add lock to ruby installing
This should fix race condition while on new jenkins nodes
Change-Id: I7fd37f69757b277f8439a27140641b6230764989
diff --git a/src/com/mirantis/mk/Ruby.groovy b/src/com/mirantis/mk/Ruby.groovy
index 1a093e5..512e671 100644
--- a/src/com/mirantis/mk/Ruby.groovy
+++ b/src/com/mirantis/mk/Ruby.groovy
@@ -9,11 +9,13 @@
* @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 "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";
+ lock('install_ruby_system') {
+ 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"
}