5
0
Fork 0
mirror of https://0xacab.org/sutty/sutty synced 2024-11-20 13:16:23 +00:00

Merge branch 'issue-10464' into panel.sutty.nl

This commit is contained in:
f 2023-03-24 14:08:24 -03:00
commit 77ef80edb2
8 changed files with 26 additions and 17 deletions

View file

@ -69,12 +69,11 @@ module Api
end
end
# Todos los dominios con WWW habilitado
def www_names
Site.where(contact: true)
.or(Site.where(colaboracion_anonima: true))
.select("'www.' || name as name").map(&:name).map do |name|
canonicalize name
end
Site.where(id: DeployWww.all.pluck(:site_id)).select("'www.' || name as name").map(&:name).map do |name|
canonicalize name
end
end
end
end

View file

@ -68,9 +68,7 @@ class SitesController < ApplicationController
def enqueue
authorize site
# XXX: Convertir en una máquina de estados?
site.enqueue!
DeployJob.perform_async site.id
SiteService.new(site: site).deploy
redirect_to site_posts_path(site, locale: site.default_locale)
end

View file

@ -5,6 +5,8 @@ class DeployJob < ApplicationJob
class DeployException < StandardError; end
class DeployTimedOutException < DeployException; end
discard_on ActiveRecord::RecordNotFound
# rubocop:disable Metrics/MethodLength
def perform(site, notify: true, time: Time.now, output: false)
@output = output
@ -42,7 +44,8 @@ class DeployJob < ApplicationJob
status = false
seconds ||= 0
size ||= 0
urls ||= []
# XXX: Hace que se vea la tabla
urls ||= [nil]
notify_exception e, d
end

View file

@ -130,9 +130,17 @@ class DeployLocal < Deploy
run 'yarn install --production', output: output
end
def pnpm(output: output)
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)
# XXX: Desde que ya no compartimos el directorio de gemas, tenemos
# que hacer limpieza después de instalar.
run %(bundle install --no-cache --path="#{gems_dir}" --clean --without test development), output: output
end

View file

@ -2,12 +2,6 @@
# Este metadato permite generar rutas manuales.
class MetadataPermalink < MetadataString
# El valor por defecto una vez creado es la URL que le asigne Jekyll,
# de forma que nunca cambia aunque se cambie el título.
def default_value
document.url.sub(%r{\A/}, '') unless post.new?
end
# Los permalinks nunca pueden ser privados
def private?
false

View file

@ -3,6 +3,11 @@
# Se encargar de guardar cambios en sitios
# TODO: Implementar rollback en la configuración
SiteService = Struct.new(:site, :usuarie, :params, keyword_init: true) do
def deploy
site.enqueue!
DeployJob.perform_async site.id
end
# Crea un sitio, agrega un rol nuevo y guarda los cambios a la
# configuración en el repositorio git
def create
@ -28,6 +33,8 @@ SiteService = Struct.new(:site, :usuarie, :params, keyword_init: true) do
add_privacy_policy
end
deploy
site
end

View file

@ -118,7 +118,7 @@ en:
success: Success!
error: Error
deploy_localized_domain:
title: Localized domain
title: Domain name by language
success: Success!
error: Error
deploy_rsync:

View file

@ -118,7 +118,7 @@ es:
success: ¡Éxito!
error: Hubo un error
deploy_localized_domain:
title: Dominio por idioma
title: Dominio según idioma
success: ¡Éxito!
error: Hubo un error
deploy_rsync: