5
0
Fork 0
mirror of https://0xacab.org/sutty/sutty synced 2024-11-20 13:36:21 +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
end end
# Todos los dominios con WWW habilitado
def www_names def www_names
Site.where(contact: true) Site.where(id: DeployWww.all.pluck(:site_id)).select("'www.' || name as name").map(&:name).map do |name|
.or(Site.where(colaboracion_anonima: true)) canonicalize name
.select("'www.' || name as name").map(&:name).map do |name| end
canonicalize name
end
end end
end end
end end

View file

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

View file

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

View file

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

View file

@ -2,12 +2,6 @@
# Este metadato permite generar rutas manuales. # Este metadato permite generar rutas manuales.
class MetadataPermalink < MetadataString 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 # Los permalinks nunca pueden ser privados
def private? def private?
false false

View file

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

View file

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

View file

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