Al cambiar el nombre actualizamos el www

This commit is contained in:
f 2021-08-14 20:27:08 -03:00
parent 3e76ffe4c4
commit 5a53facaa7
2 changed files with 21 additions and 0 deletions

View file

@ -4,6 +4,8 @@
class DeployLocal < Deploy
# Asegurarse que el hostname es el permitido.
before_validation :reset_hostname!, :default_hostname!
# Actualiza el hostname con www si cambiamos el hostname
before_update :update_deploy_www!, if: :hostname_changed?
# Realizamos la construcción del sitio usando Jekyll y un entorno
# limpio para no pasarle secretos
@ -43,6 +45,13 @@ class DeployLocal < Deploy
self.hostname = nil
end
# XXX: En realidad el DeployWww debería regenerar su propio hostname.
def update_deploy_www!
site.deploys.where(type: 'DeployWww').map do |www|
www.update hostname: www.default_hostname
end
end
# Crea el directorio destino si no existe.
def mkdir
FileUtils.mkdir_p destination

View file

@ -54,6 +54,18 @@ class Site::DeploymentTest < ActiveSupport::TestCase
assert File.exist?(site.deploy_local.destination)
end
test 'al cambiar el nombre se actualiza el www' do
site_name = site.name
new_name = "test-#{SecureRandom.hex}"
assert (deploy_www = site.deploys.create(type: 'DeployWww'))
assert site.deploy_local.deploy
assert_not site.deploy_local.destination_changed?
assert site.update(name: new_name)
assert deploy_www.reload.hostname.include?(new_name)
assert_equal 4, site.deploys.count
end
test 'al cambiar el nombre varias veces se crean varios links' do
assert site.deploy_local.deploy