diff --git a/app/models/deploy_local.rb b/app/models/deploy_local.rb index b8885509..b5a15cfe 100644 --- a/app/models/deploy_local.rb +++ b/app/models/deploy_local.rb @@ -7,6 +7,18 @@ class DeployLocal < Deploy before_destroy :remove_destination! + def git_lfs(output: false) + run %(git lfs fetch), output: output + run %(git lfs checkout), output: output + end + + def bundle(output: false) + # XXX: Desde que ya no compartimos el directorio de gemas, tenemos + # que hacer limpieza después de instalar. + + run %(bundle install --deployment --no-cache --path="#{site.bundle_path}" --clean --without test development), output: output + end + # Realizamos la construcción del sitio usando Jekyll y un entorno # limpio para no pasarle secretos # @@ -114,9 +126,11 @@ class DeployLocal < Deploy File.exist? pnpm_lock end - def git_lfs(output: false) - run %(git lfs fetch), output: output - run %(git lfs checkout), output: output + def pnpm(output: false) + return true unless pnpm_lock? + + run %(pnpm config set store-dir "#{pnpm_cache_dir}"), output: output + run 'pnpm install --production', output: output end def gem(output: false) @@ -130,17 +144,6 @@ class DeployLocal < Deploy run 'yarn install --production', output: output end - def pnpm(output: false) - return true unless pnpm_lock? - - run %(pnpm config set store-dir "#{pnpm_cache_dir}"), output: output - run 'pnpm install --production', output: output - end - - def bundle(output: false) - run %(bundle install --deployment --no-cache --path="#{site.bundle_path}" --clean --without test development), output: output - end - def jekyll_build(output: false) run %(bundle exec jekyll build --trace --profile --destination "#{escaped_destination}"), output: output end diff --git a/app/models/site.rb b/app/models/site.rb index 754f9df1..fab16b58 100644 --- a/app/models/site.rb +++ b/app/models/site.rb @@ -558,10 +558,11 @@ class Site < ApplicationRecord def install_gems return unless persisted? - deploys.find_by_type('DeployLocal').send(:git_lfs) + deploy_local = deploys.find_by_type('DeployLocal') + deploy_local.git_lfs if !gem_dir? || gemfile_updated? || gemfile_lock_updated? - deploys.find_by_type('DeployLocal').send(:bundle) + deploy_local.bundle touch end end