From 6b759c92ce0ad52caae465926af55edccc85f402 Mon Sep 17 00:00:00 2001 From: f Date: Mon, 27 Mar 2023 11:45:23 -0300 Subject: [PATCH 1/2] fix: instalar las gemas cuando sea necesario #12755 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit si se modificó el gemfile queremos volver a instalarlas también --- app/models/site.rb | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/app/models/site.rb b/app/models/site.rb index 4b2a8eb9..6110f104 100644 --- a/app/models/site.rb +++ b/app/models/site.rb @@ -553,10 +553,33 @@ class Site < ApplicationRecord Dir.chdir path, &block end + # Instala las gemas cuando es necesario: + # + # * El sitio existe + # * No están instaladas + # * El archivo Gemfile se modificó + # * El archivo Gemfile.lock se modificó def install_gems return unless persisted? - return if Rails.root.join('_storage', 'gems', name).directory? - deploys.find_by_type('DeployLocal').send(:bundle) + if !gem_dir? || gemfile_updated? || gemfile_lock_updated? + deploys.find_by_type('DeployLocal').send(:bundle) + touch + end + end + + # Detecta si el repositorio de gemas existe + def gem_dir? + Rails.root.join('_storage', 'gems', name).directory? + end + + # Detecta si el Gemfile fue modificado + def gemfile_updated? + updated_at > File.mtime(File.join(path, 'Gemfile')) + end + + # Detecta si el Gemfile.lock fue modificado + def gemfile_lock_updated? + updated_at > File.mtime(File.join(path, 'Gemfile.lock')) end end From 0744e124e350b45a1981080de5981784811dcee7 Mon Sep 17 00:00:00 2001 From: f Date: Fri, 31 Mar 2023 10:56:09 -0300 Subject: [PATCH 2/2] fixup! fix: instalar las gemas cuando sea necesario #12755 --- app/models/site.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/models/site.rb b/app/models/site.rb index 6110f104..804de42c 100644 --- a/app/models/site.rb +++ b/app/models/site.rb @@ -575,11 +575,11 @@ class Site < ApplicationRecord # Detecta si el Gemfile fue modificado def gemfile_updated? - updated_at > File.mtime(File.join(path, 'Gemfile')) + updated_at < File.mtime(File.join(path, 'Gemfile')) end # Detecta si el Gemfile.lock fue modificado def gemfile_lock_updated? - updated_at > File.mtime(File.join(path, 'Gemfile.lock')) + updated_at < File.mtime(File.join(path, 'Gemfile.lock')) end end