mirror of
https://0xacab.org/sutty/sutty
synced 2024-11-20 15:16:21 +00:00
Merge branch 'issue-10464' into panel.sutty.nl
This commit is contained in:
commit
77ef80edb2
8 changed files with 26 additions and 17 deletions
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
Loading…
Reference in a new issue