From 3ffa48a9960daef6d5edf6069ad22502380d4d43 Mon Sep 17 00:00:00 2001 From: Dominik George <dominik.george@teckids.org> Date: Thu, 6 Jul 2023 20:54:25 +0200 Subject: [PATCH] Fix return code of vite build management command --- CHANGELOG.rst | 6 ++++++ aleksis/core/management/commands/vite.py | 5 ++++- aleksis/core/util/frontend_helpers.py | 4 ++-- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index b6e1e530b..3457ee9c9 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -9,6 +9,12 @@ and this project adheres to `Semantic Versioning`_. Unreleased ---------- +Fixed +~~~~~ + +* [Docker] The build could silently continue even if frontend bundling failed, resulting + in an incomplete AlekSIS frontend app. + `3.1.2`_ - 2023-07-05 --------------------- diff --git a/aleksis/core/management/commands/vite.py b/aleksis/core/management/commands/vite.py index 57370441b..747f328ea 100644 --- a/aleksis/core/management/commands/vite.py +++ b/aleksis/core/management/commands/vite.py @@ -1,6 +1,7 @@ import os from django.conf import settings +from django.core.management.base import CommandError from django_yarnpkg.management.base import BaseYarnCommand from django_yarnpkg.yarn import yarn_adapter @@ -26,4 +27,6 @@ class Command(BaseYarnCommand): yarn_adapter.install(settings.YARN_INSTALLED_APPS) # Run Vite build - run_vite([options["command"]]) + ret = run_vite([options["command"]]) + if ret != 0: + raise CommandError("yarn command failed", returncode=ret) diff --git a/aleksis/core/util/frontend_helpers.py b/aleksis/core/util/frontend_helpers.py index 5d343acc0..885ac39fd 100644 --- a/aleksis/core/util/frontend_helpers.py +++ b/aleksis/core/util/frontend_helpers.py @@ -49,7 +49,7 @@ def write_vite_values(out_path: str) -> dict[str, Any]: json.dump(vite_values, out) -def run_vite(args: Optional[Sequence[str]] = None) -> None: +def run_vite(args: Optional[Sequence[str]] = None) -> int: args = list(args) if args else [] config_path = os.path.join(settings.BASE_DIR, "aleksis", "core", "vite.config.js") @@ -64,7 +64,7 @@ def run_vite(args: Optional[Sequence[str]] = None) -> None: log_level = {"INFO": "info", "WARNING": "warn", "ERROR": "error"}.get(log_level, "silent") args += ["-l", log_level] - yarn_adapter.call_yarn(["run", "vite"] + args) + return yarn_adapter.call_yarn(["run", "vite"] + args) def get_language_cookie(code: str) -> str: -- GitLab