Narrow DC CMS source deploy runtime

This commit is contained in:
Codex 2026-07-06 11:58:52 +03:00
parent 7ef0ca8eab
commit d196d4b0c7
1 changed files with 41 additions and 3 deletions

View File

@ -899,6 +899,34 @@ def component_compose_project(component):
def component_services(component, entries=None):
if component == "dc-cms" and entries is not None:
selected = []
def add(*services):
for service in services:
if service not in selected:
selected.append(service)
touches_compose = any(rel == "infra/docker-compose.yml" for rel in entries)
touches_proxy = any(rel == "infra/reverse-proxy" or rel.startswith("infra/reverse-proxy/") for rel in entries)
touches_authentik = any(rel == "infra/authentik" or rel.startswith("infra/authentik/") for rel in entries)
touches_app = any(
rel in ("Dockerfile", "package.json", "package-lock.json", "README.md")
or rel.startswith(("admin/", "projects/", "server/"))
for rel in entries
)
if touches_compose:
return COMPONENTS[component]["services"]
if touches_authentik:
add("postgresql-authentik", "authentik-server", "authentik-worker", "authentik-bootstrap", "cms-app", "reverse-proxy")
if touches_app:
add("cms-app")
if touches_proxy:
add("reverse-proxy")
if selected:
return tuple(selected)
if component == "tasker" and entries is not None:
selected = ["api", "worker", "beat-worker", "web"]
touches_compose = any(
@ -942,6 +970,16 @@ def component_services(component, entries=None):
return COMPONENTS[component]["services"]
def component_compose_no_deps(component, entries=None):
if component == "dc-cms" and entries is not None:
touches_compose = any(rel == "infra/docker-compose.yml" for rel in entries)
touches_proxy = any(rel == "infra/reverse-proxy" or rel.startswith("infra/reverse-proxy/") for rel in entries)
touches_authentik = any(rel == "infra/authentik" or rel.startswith("infra/authentik/") for rel in entries)
return not (touches_compose or touches_proxy or touches_authentik)
return bool(COMPONENTS[component].get("compose_no_deps"))
def component_compose_files(component):
return COMPONENTS[component].get("compose_files", ())
@ -1182,12 +1220,12 @@ def compose_base_cmd(component):
return cmd
def run_compose(component, services):
def run_compose(component, services, entries=None):
compose_root = component_compose_root(component)
cmd = [*compose_base_cmd(component), "up", "-d", "--force-recreate"]
if COMPONENTS[component].get("compose_build"):
cmd.append("--build")
if COMPONENTS[component].get("compose_no_deps"):
if component_compose_no_deps(component, entries):
cmd.append("--no-deps")
cmd.extend(services)
try:
@ -1218,7 +1256,7 @@ def prepare_component_runtime(component):
def run_component_runtime(component, entries, services):
run_build(component, entries)
prepare_component_runtime(component)
run_compose(component, services)
run_compose(component, services, entries)
def healthcheck_url(check):