diff --git a/kdb-bot/cpl-workspace.json b/kdb-bot/cpl-workspace.json index 82fc9abe6d..161c6a0fc5 100644 --- a/kdb-bot/cpl-workspace.json +++ b/kdb-bot/cpl-workspace.json @@ -12,13 +12,15 @@ "database": "src/modules/database/database.json", "moderator": "src/modules/moderator/moderator.json", "permission": "src/modules/permission/permission.json", - "bot-api": "src/bot_api/bot-api.json" + "bot-api": "src/bot_api/bot-api.json", + "post-build": "tools/post_build/post-build.json" }, "Scripts": { + "post-build": "cpl run post-build", "prod": "export KDB_ENVIRONMENT=production; export KDB_NAME=KDB-Prod; cpl start;", "stage": "export KDB_ENVIRONMENT=staging; export KDB_NAME=KDB-Stage; cpl start;", "dev": "export KDB_ENVIRONMENT=development; export KDB_NAME=KDB-Dev; cpl start;", - "build-docker": "cpl b; docker-compose down; docker build -t kdb .", + "build-docker": "cpl b; docker-compose down; docker build -t kdb:kdb .", "compose": "docker-compose up -d", "docker": "cpl build-docker; cpl compose;" } diff --git a/kdb-bot/docker-compose.yml b/kdb-bot/docker-compose.yml index bf10c02738..b83a787ab7 100644 --- a/kdb-bot/docker-compose.yml +++ b/kdb-bot/docker-compose.yml @@ -2,13 +2,12 @@ version: "3.9" volumes: kdb_prod_1: - kdb_staging_1: + kdb_web_prod_1: kdb_db_1: - kdb_db_2: services: kdb_prod_1: - image: kdb/kdb:0.2.1 + image: kdb/kdb:0.3 container_name: kdb_prod_1 depends_on: - kdb_db_1 @@ -20,18 +19,16 @@ services: KDB_PREFIX: "!k " restart: 'no' - kdb_staging_1: - image: kdb/kdb:0.2.1 - container_name: kdb_staging_1 + kdb_web_prod_1: + image: kdb/kdb-web:0.3 + container_name: kdb_web_prod_1 depends_on: - - kdb_db_1 + - kdb_prod_1 volumes: - - kdb_staging_1:/app - environment: - KDB_ENVIRONMENT: "staging" - KDB_TOKEN: "" - KDB_PREFIX: "!kt " + - kdb_web_prod_1:/app restart: 'no' + ports: + - '8042:80' kdb_db_1: image: mysql:latest @@ -46,19 +43,4 @@ services: ports: - "3307:3306" volumes: - - kdb_db_1:/var/lib/mysql - - kdb_db_2: - image: mysql:latest - container_name: kdb_db_2 - command: mysqld --default-authentication-plugin=mysql_native_password - restart: unless-stopped - environment: - MYSQL_ROOT_PASSWORD: "kd_kdb" - MYSQL_USER: "kd_kdb" - MYSQL_PASSWORD: "kd_kdb" - MYSQL_DATABASE: "kd_kdb" - ports: - - "3308:3306" - volumes: - - kdb_db_2:/var/lib/mysql \ No newline at end of file + - kdb_db_1:/var/lib/mysql \ No newline at end of file diff --git a/kdb-bot/dockerfile b/kdb-bot/dockerfile index b59a50a966..063c7f8d8b 100644 --- a/kdb-bot/dockerfile +++ b/kdb-bot/dockerfile @@ -4,10 +4,7 @@ FROM python:3.10.7-bullseye WORKDIR /app COPY ./dist/bot/build/ . -RUN pip install cpl-core --extra-index-url https://pip.sh-edraft.de -RUN pip install cpl-discord --extra-index-url https://pip.sh-edraft.de -RUN pip install cpl-query --extra-index-url https://pip.sh-edraft.de -RUN pip install cpl-translation --extra-index-url https://pip.sh-edraft.de +RUN pip install -r requirements.txt --extra-index-url https://pip.sh-edraft.de RUN apt-get update -y RUN apt-get install nano -y diff --git a/kdb-bot/src/bot/bot.json b/kdb-bot/src/bot/bot.json index 8fd900caec..dcd4efc0ed 100644 --- a/kdb-bot/src/bot/bot.json +++ b/kdb-bot/src/bot/bot.json @@ -33,9 +33,7 @@ "cpl-cli==2022.10.0" ], "PythonVersion": ">=3.10.4", - "PythonPath": { - "linux": "" - }, + "PythonPath": {}, "Classifiers": [] }, "BuildSettings": { diff --git a/kdb-bot/src/bot_api/bot-api.json b/kdb-bot/src/bot_api/bot-api.json index 86b1012e38..07d272dd5d 100644 --- a/kdb-bot/src/bot_api/bot-api.json +++ b/kdb-bot/src/bot_api/bot-api.json @@ -2,7 +2,7 @@ "ProjectSettings": { "Name": "bot-api", "Version": { - "Major": "0", + "Major": "1", "Minor": "0", "Micro": "0" }, @@ -22,9 +22,7 @@ "cpl-cli==2022.10.0" ], "PythonVersion": ">=3.10.4", - "PythonPath": { - "linux": "" - }, + "PythonPath": {}, "Classifiers": [] }, "BuildSettings": { diff --git a/kdb-bot/src/bot_api/controller/discord/__init__.py b/kdb-bot/src/bot_api/controller/discord/__init__.py index e69de29bb2..48cb2fccb7 100644 --- a/kdb-bot/src/bot_api/controller/discord/__init__.py +++ b/kdb-bot/src/bot_api/controller/discord/__init__.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- + +""" +bot Keksdose bot +~~~~~~~~~~~~~~~~~~~ + +Discord bot for the Keksdose discord Server + +:copyright: (c) 2022 sh-edraft.de +:license: MIT, see LICENSE for more details. + +""" + +__title__ = 'bot_api.controller.discord' +__author__ = 'Sven Heidemann' +__license__ = 'MIT' +__copyright__ = 'Copyright (c) 2022 sh-edraft.de' +__version__ = '0.3.0' + +from collections import namedtuple + + +# imports: + +VersionInfo = namedtuple('VersionInfo', 'major minor micro') +version_info = VersionInfo(major='0', minor='3', micro='0') diff --git a/kdb-bot/src/bot_api/event/__init__.py b/kdb-bot/src/bot_api/event/__init__.py index e69de29bb2..0627d7cf16 100644 --- a/kdb-bot/src/bot_api/event/__init__.py +++ b/kdb-bot/src/bot_api/event/__init__.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- + +""" +bot Keksdose bot +~~~~~~~~~~~~~~~~~~~ + +Discord bot for the Keksdose discord Server + +:copyright: (c) 2022 sh-edraft.de +:license: MIT, see LICENSE for more details. + +""" + +__title__ = 'bot_api.event' +__author__ = 'Sven Heidemann' +__license__ = 'MIT' +__copyright__ = 'Copyright (c) 2022 sh-edraft.de' +__version__ = '0.3.0' + +from collections import namedtuple + + +# imports: + +VersionInfo = namedtuple('VersionInfo', 'major minor micro') +version_info = VersionInfo(major='0', minor='3', micro='0') diff --git a/kdb-bot/src/bot_api/filter/discord/__init__.py b/kdb-bot/src/bot_api/filter/discord/__init__.py index e69de29bb2..1f6d5f55df 100644 --- a/kdb-bot/src/bot_api/filter/discord/__init__.py +++ b/kdb-bot/src/bot_api/filter/discord/__init__.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- + +""" +bot Keksdose bot +~~~~~~~~~~~~~~~~~~~ + +Discord bot for the Keksdose discord Server + +:copyright: (c) 2022 sh-edraft.de +:license: MIT, see LICENSE for more details. + +""" + +__title__ = 'bot_api.filter.discord' +__author__ = 'Sven Heidemann' +__license__ = 'MIT' +__copyright__ = 'Copyright (c) 2022 sh-edraft.de' +__version__ = '0.3.0' + +from collections import namedtuple + + +# imports: + +VersionInfo = namedtuple('VersionInfo', 'major minor micro') +version_info = VersionInfo(major='0', minor='3', micro='0') diff --git a/kdb-bot/src/bot_api/mail/__init__.py b/kdb-bot/src/bot_api/mail/__init__.py index 425ab6c146..4f792fb4db 100644 --- a/kdb-bot/src/bot_api/mail/__init__.py +++ b/kdb-bot/src/bot_api/mail/__init__.py @@ -1 +1,26 @@ +# -*- coding: utf-8 -*- + +""" +bot Keksdose bot +~~~~~~~~~~~~~~~~~~~ + +Discord bot for the Keksdose discord Server + +:copyright: (c) 2022 sh-edraft.de +:license: MIT, see LICENSE for more details. + +""" + +__title__ = 'bot_api.mail' +__author__ = 'Sven Heidemann' +__license__ = 'MIT' +__copyright__ = 'Copyright (c) 2022 sh-edraft.de' +__version__ = '0.3.0' + +from collections import namedtuple + + # imports + +VersionInfo = namedtuple('VersionInfo', 'major minor micro') +version_info = VersionInfo(major='0', minor='3', micro='0') diff --git a/kdb-bot/src/bot_api/model/discord/__init__.py b/kdb-bot/src/bot_api/model/discord/__init__.py index e69de29bb2..a7bbccf9f2 100644 --- a/kdb-bot/src/bot_api/model/discord/__init__.py +++ b/kdb-bot/src/bot_api/model/discord/__init__.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- + +""" +bot Keksdose bot +~~~~~~~~~~~~~~~~~~~ + +Discord bot for the Keksdose discord Server + +:copyright: (c) 2022 sh-edraft.de +:license: MIT, see LICENSE for more details. + +""" + +__title__ = 'bot_api.model.discord' +__author__ = 'Sven Heidemann' +__license__ = 'MIT' +__copyright__ = 'Copyright (c) 2022 sh-edraft.de' +__version__ = '0.3.0' + +from collections import namedtuple + + +# imports: + +VersionInfo = namedtuple('VersionInfo', 'major minor micro') +version_info = VersionInfo(major='0', minor='3', micro='0') diff --git a/kdb-bot/src/bot_core/bot-core.json b/kdb-bot/src/bot_core/bot-core.json index 502ce6c618..5d1641db8a 100644 --- a/kdb-bot/src/bot_core/bot-core.json +++ b/kdb-bot/src/bot_core/bot-core.json @@ -22,9 +22,7 @@ "cpl-cli==2022.10.0" ], "PythonVersion": ">=3.10.4", - "PythonPath": { - "linux": "" - }, + "PythonPath": {}, "Classifiers": [] }, "BuildSettings": { diff --git a/kdb-bot/src/bot_data/bot-data.json b/kdb-bot/src/bot_data/bot-data.json index 99af9f44e4..3177e285a3 100644 --- a/kdb-bot/src/bot_data/bot-data.json +++ b/kdb-bot/src/bot_data/bot-data.json @@ -22,9 +22,7 @@ "cpl-cli==2022.10.0" ], "PythonVersion": ">=3.10.4", - "PythonPath": { - "linux": "" - }, + "PythonPath": {}, "Classifiers": [] }, "BuildSettings": { diff --git a/kdb-bot/src/modules/admin/admin.json b/kdb-bot/src/modules/admin/admin.json index e76e9180f8..38e0642859 100644 --- a/kdb-bot/src/modules/admin/admin.json +++ b/kdb-bot/src/modules/admin/admin.json @@ -2,7 +2,7 @@ "ProjectSettings": { "Name": "admin", "Version": { - "Major": "0", + "Major": "1", "Minor": "0", "Micro": "0" }, @@ -22,9 +22,7 @@ "cpl-cli==2022.10.0" ], "PythonVersion": ">=3.10.4", - "PythonPath": { - "linux": "" - }, + "PythonPath": {}, "Classifiers": [] }, "BuildSettings": { diff --git a/kdb-bot/src/modules/auto_role/auto-role.json b/kdb-bot/src/modules/auto_role/auto-role.json index f87561551d..9730a2bc54 100644 --- a/kdb-bot/src/modules/auto_role/auto-role.json +++ b/kdb-bot/src/modules/auto_role/auto-role.json @@ -2,7 +2,7 @@ "ProjectSettings": { "Name": "auto-role", "Version": { - "Major": "0", + "Major": "1", "Minor": "0", "Micro": "0" }, @@ -22,9 +22,7 @@ "cpl-cli==2022.10.0" ], "PythonVersion": ">=3.10.4", - "PythonPath": { - "linux": "" - }, + "PythonPath": {}, "Classifiers": [] }, "BuildSettings": { diff --git a/kdb-bot/src/modules/base/base.json b/kdb-bot/src/modules/base/base.json index a77d7c5b60..7a8a49c740 100644 --- a/kdb-bot/src/modules/base/base.json +++ b/kdb-bot/src/modules/base/base.json @@ -2,7 +2,7 @@ "ProjectSettings": { "Name": "base", "Version": { - "Major": "0", + "Major": "1", "Minor": "0", "Micro": "0" }, @@ -22,9 +22,7 @@ "cpl-cli==2022.10.0" ], "PythonVersion": ">=3.10.4", - "PythonPath": { - "linux": "" - }, + "PythonPath": {}, "Classifiers": [] }, "BuildSettings": { diff --git a/kdb-bot/src/modules/boot_log/boot-log.json b/kdb-bot/src/modules/boot_log/boot-log.json index 0090d83c50..6273fe84a1 100644 --- a/kdb-bot/src/modules/boot_log/boot-log.json +++ b/kdb-bot/src/modules/boot_log/boot-log.json @@ -2,7 +2,7 @@ "ProjectSettings": { "Name": "boot-log", "Version": { - "Major": "0", + "Major": "1", "Minor": "0", "Micro": "0" }, @@ -22,9 +22,7 @@ "cpl-cli==2022.10.0" ], "PythonVersion": ">=3.10.4", - "PythonPath": { - "linux": "" - }, + "PythonPath": {}, "Classifiers": [] }, "BuildSettings": { diff --git a/kdb-bot/src/modules/database/database.json b/kdb-bot/src/modules/database/database.json index c4b05683cf..2954470f53 100644 --- a/kdb-bot/src/modules/database/database.json +++ b/kdb-bot/src/modules/database/database.json @@ -22,9 +22,7 @@ "cpl-cli==2022.10.0" ], "PythonVersion": ">=3.10.4", - "PythonPath": { - "linux": "" - }, + "PythonPath": {}, "Classifiers": [] }, "BuildSettings": { diff --git a/kdb-bot/src/modules/moderator/moderator.json b/kdb-bot/src/modules/moderator/moderator.json index 034735a69b..b92b06bc64 100644 --- a/kdb-bot/src/modules/moderator/moderator.json +++ b/kdb-bot/src/modules/moderator/moderator.json @@ -2,7 +2,7 @@ "ProjectSettings": { "Name": "moderator", "Version": { - "Major": "0", + "Major": "1", "Minor": "0", "Micro": "0" }, @@ -22,9 +22,7 @@ "cpl-cli==2022.10.0" ], "PythonVersion": ">=3.10.4", - "PythonPath": { - "linux": "" - }, + "PythonPath": {}, "Classifiers": [] }, "BuildSettings": { diff --git a/kdb-bot/src/modules/permission/permission.json b/kdb-bot/src/modules/permission/permission.json index 86cbc3c749..40642f2a70 100644 --- a/kdb-bot/src/modules/permission/permission.json +++ b/kdb-bot/src/modules/permission/permission.json @@ -2,7 +2,7 @@ "ProjectSettings": { "Name": "permission", "Version": { - "Major": "0", + "Major": "1", "Minor": "0", "Micro": "0" }, @@ -22,9 +22,7 @@ "cpl-cli==2022.10.0" ], "PythonVersion": ">=3.10.4", - "PythonPath": { - "linux": "" - }, + "PythonPath": {}, "Classifiers": [] }, "BuildSettings": { diff --git a/kdb-bot/tools/post_build/__init__.py b/kdb-bot/tools/post_build/__init__.py new file mode 100644 index 0000000000..372a0aa701 --- /dev/null +++ b/kdb-bot/tools/post_build/__init__.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- + +""" +post-build KDB - post build +~~~~~~~~~~~~~~~~~~~ + +Tool project to clean build project files + +:copyright: (c) 2022 sh-edraft.de +:license: MIT, see LICENSE for more details. + +""" + +__title__ = 'post_build' +__author__ = 'Sven Heidemann' +__license__ = 'MIT' +__copyright__ = 'Copyright (c) 2022 sh-edraft.de' +__version__ = '1.0.0' + +from collections import namedtuple + + +# imports: + +VersionInfo = namedtuple('VersionInfo', 'major minor micro') +version_info = VersionInfo(major='1', minor='0', micro='0') diff --git a/kdb-bot/tools/post_build/application.py b/kdb-bot/tools/post_build/application.py new file mode 100644 index 0000000000..29f67e5894 --- /dev/null +++ b/kdb-bot/tools/post_build/application.py @@ -0,0 +1,26 @@ +from cpl_core.application import ApplicationABC +from cpl_core.configuration import ConfigurationABC +from cpl_core.console import Console +from cpl_core.dependency_injection import ServiceProviderABC + +from post_build.service.dependencies import Dependencies +from post_build.service.remove_config import RemoveConfig + + +class Application(ApplicationABC): + + def __init__(self, config: ConfigurationABC, services: ServiceProviderABC): + ApplicationABC.__init__(self, config, services) + + self._remove_config: RemoveConfig = services.get_service(RemoveConfig) + self._deps: Dependencies = services.get_service(Dependencies) + + def configure(self): + pass + + def main(self): + Console.write_line('KDB Post-Build:') + Console.spinner(f'Removing unnecessary configs', self._remove_config.remove) + Console.spinner(f'Creating requirements file for pip', self._deps.create) + + diff --git a/kdb-bot/tools/post_build/appsettings.json b/kdb-bot/tools/post_build/appsettings.json new file mode 100644 index 0000000000..c8411f8e21 --- /dev/null +++ b/kdb-bot/tools/post_build/appsettings.json @@ -0,0 +1,30 @@ +{ + "TimeFormatSettings": { + "DateFormat": "%Y-%m-%d", + "TimeFormat": "%H:%M:%S", + "DateTimeFormat": "%Y-%m-%d %H:%M:%S.%f", + "DateTimeLogFormat": "%Y-%m-%d_%H-%M-%S" + }, + + "LoggingSettings": { + "Path": "logs/", + "Filename": "log_$start_time.log", + "ConsoleLogLevel": "ERROR", + "FileLogLevel": "WARN" + }, + + "PostBuild": { + "KeepConfigs": [ + "appsettings.json", + "appsettings.staging.json", + "appsettings.production.json", + "apisettings.json", + "apisettings.staging.json", + "apisettings.production.json" + ], + "ConfigPaths": [ + "bot/config/", + "bot_api/config/" + ] + } +} diff --git a/kdb-bot/tools/post_build/main.py b/kdb-bot/tools/post_build/main.py new file mode 100644 index 0000000000..042ae52096 --- /dev/null +++ b/kdb-bot/tools/post_build/main.py @@ -0,0 +1,14 @@ +from cpl_core.application import ApplicationBuilder + +from post_build.application import Application +from post_build.startup import Startup + + +def main(): + app_builder = ApplicationBuilder(Application) + app_builder.use_startup(Startup) + app_builder.build().run() + + +if __name__ == '__main__': + main() diff --git a/kdb-bot/tools/post_build/post-build.json b/kdb-bot/tools/post_build/post-build.json new file mode 100644 index 0000000000..b203f86309 --- /dev/null +++ b/kdb-bot/tools/post_build/post-build.json @@ -0,0 +1,44 @@ +{ + "ProjectSettings": { + "Name": "post-build", + "Version": { + "Major": "1", + "Minor": "0", + "Micro": "0" + }, + "Author": "Sven Heidemann", + "AuthorEmail": "sven.heidemann@sh-edraft.de", + "Description": "KDB - post build", + "LongDescription": "Tool project to clean build project files", + "URL": "https://www.sh-edraft.de", + "CopyrightDate": "2022", + "CopyrightName": "sh-edraft.de", + "LicenseName": "MIT", + "LicenseDescription": "MIT, see LICENSE for more details.", + "Dependencies": [ + "cpl-core>=2022.10.0.post7" + ], + "DevDependencies": [ + "cpl-cli>=2022.10.0" + ], + "PythonVersion": ">=3.10.4", + "PythonPath": {}, + "Classifiers": [] + }, + "BuildSettings": { + "ProjectType": "console", + "SourcePath": "", + "OutputPath": "../../dist", + "Main": "post_build.main", + "EntryPoint": "post-build", + "IncludePackageData": false, + "Included": [], + "Excluded": [ + "*/__pycache__", + "*/logs", + "*/tests" + ], + "PackageData": {}, + "ProjectReferences": [] + } +} \ No newline at end of file diff --git a/kdb-bot/tools/post_build/post_build_settings.py b/kdb-bot/tools/post_build/post_build_settings.py new file mode 100644 index 0000000000..e52ec53f25 --- /dev/null +++ b/kdb-bot/tools/post_build/post_build_settings.py @@ -0,0 +1,29 @@ +import traceback + +from cpl_core.configuration.configuration_model_abc import ConfigurationModelABC +from cpl_core.console import Console + + +class PostBuildSettings(ConfigurationModelABC): + + def __init__(self): + ConfigurationModelABC.__init__(self) + + self._keep_config = [] + self._config_paths = [] + + @property + def keep_config(self) -> list[str]: + return self._keep_config + + @property + def config_paths(self) -> list[str]: + return self._config_paths + + def from_dict(self, settings: dict): + try: + self._keep_config = settings['KeepConfigs'] + self._config_paths = settings['ConfigPaths'] + except Exception as e: + Console.error(f'[ ERROR ] [ {__name__} ]: Reading error in {type(self).__name__} settings') + Console.error(f'[ EXCEPTION ] [ {__name__} ]: {e} -> {traceback.format_exc()}') diff --git a/kdb-bot/tools/post_build/service/__init__.py b/kdb-bot/tools/post_build/service/__init__.py new file mode 100644 index 0000000000..eec5161215 --- /dev/null +++ b/kdb-bot/tools/post_build/service/__init__.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- + +""" +post-build KDB - post build +~~~~~~~~~~~~~~~~~~~ + +Tool project to clean build project files + +:copyright: (c) 2022 sh-edraft.de +:license: MIT, see LICENSE for more details. + +""" + +__title__ = 'post_build.service' +__author__ = 'Sven Heidemann' +__license__ = 'MIT' +__copyright__ = 'Copyright (c) 2022 sh-edraft.de' +__version__ = '1.0.0' + +from collections import namedtuple + + +# imports + +VersionInfo = namedtuple('VersionInfo', 'major minor micro') +version_info = VersionInfo(major='1', minor='0', micro='0') diff --git a/kdb-bot/tools/post_build/service/dependencies.py b/kdb-bot/tools/post_build/service/dependencies.py new file mode 100644 index 0000000000..1359b738a4 --- /dev/null +++ b/kdb-bot/tools/post_build/service/dependencies.py @@ -0,0 +1,64 @@ +import os + +from cpl_cli.configuration import WorkspaceSettings, ProjectSettings, BuildSettings +from cpl_core.configuration import ConfigurationABC +from cpl_core.console import Console +from cpl_core.environment import ApplicationEnvironmentABC + +from post_build.post_build_settings import PostBuildSettings + + +class Dependencies: + + def __init__( + self, + config: ConfigurationABC, + env: ApplicationEnvironmentABC, + ws: WorkspaceSettings, + project: ProjectSettings, + build: BuildSettings, + post_build: PostBuildSettings + ): + self._config = config + self._env = env + self._workspace = ws + self._project = project + self._build = build + self._post_build = post_build + + self._dependencies = {} + + def _add_dependencies(self, deps: list[str]): + for d in deps: + d_name = d + if '>=' in d: + d_name = d.split('>=')[0] + if '<=' in d: + d_name = d.split('<=')[0] + if '==' in d: + d_name = d.split('==')[0] + + if d_name in self._dependencies: + continue + + self._dependencies[d_name] = d + + def create(self): + dist_path = os.path.abspath(os.path.join( + self._env.working_directory, + os.path.dirname(self._workspace.projects[self._project.name]), + self._build.output_path, + self._project.name, + 'build' + )) + + for project in self._workspace.projects: + project_file = os.path.join(self._env.working_directory, self._workspace.projects[project]) + self._config.add_json_file(project_file, output=False, optional=False) + project: ProjectSettings = self._config.get_configuration(ProjectSettings) + self._add_dependencies(project.dependencies) + + with open(f'{dist_path}/requirements.txt', 'w+', encoding='utf-8') as f: + for dependency in self._dependencies: + f.write(f'{self._dependencies[dependency]}\n') + f.close() diff --git a/kdb-bot/tools/post_build/service/remove_config.py b/kdb-bot/tools/post_build/service/remove_config.py new file mode 100644 index 0000000000..99210a3027 --- /dev/null +++ b/kdb-bot/tools/post_build/service/remove_config.py @@ -0,0 +1,39 @@ +import os + +from cpl_cli.configuration import ProjectSettings, BuildSettings, WorkspaceSettings +from cpl_core.console import Console +from cpl_core.environment import ApplicationEnvironmentABC + +from post_build.post_build_settings import PostBuildSettings + + +class RemoveConfig: + + def __init__(self, env: ApplicationEnvironmentABC, ws: WorkspaceSettings, project: ProjectSettings, build: BuildSettings, post_build: PostBuildSettings): + + self._env = env + self._workspace = ws + self._project = project + self._build = build + self._post_build = post_build + + def remove(self): + dist_path = os.path.abspath(os.path.join( + self._env.working_directory, + os.path.dirname(self._workspace.projects[self._project.name]), + self._build.output_path, + self._project.name, + 'build' + )) + + for cfg_path in self._post_build.config_paths: + config_path = os.path.join( + dist_path, + cfg_path + ) + for r, d, f in os.walk(config_path): + for file in f: + if file in self._post_build.keep_config: + continue + + os.remove(os.path.abspath(os.path.join(config_path, file))) diff --git a/kdb-bot/tools/post_build/startup.py b/kdb-bot/tools/post_build/startup.py new file mode 100644 index 0000000000..4191ced6d8 --- /dev/null +++ b/kdb-bot/tools/post_build/startup.py @@ -0,0 +1,32 @@ +import os.path + +from cpl_cli.configuration import WorkspaceSettings, ProjectSettings +from cpl_core.application import StartupABC +from cpl_core.configuration import ConfigurationABC +from cpl_core.console import Console +from cpl_core.dependency_injection import ServiceProviderABC, ServiceCollectionABC +from cpl_core.environment import ApplicationEnvironment + +from post_build.service.dependencies import Dependencies +from post_build.service.remove_config import RemoveConfig + + +class Startup(StartupABC): + + def __init__(self): + StartupABC.__init__(self) + + def configure_configuration(self, configuration: ConfigurationABC, environment: ApplicationEnvironment) -> ConfigurationABC: + configuration.add_json_file(f'appsettings.json', optional=False, output=False) + environment.set_working_directory(os.path.abspath(os.path.join(environment.working_directory, '../../'))) + configuration.add_json_file(f'cpl-workspace.json', optional=False, output=False) + ws: WorkspaceSettings = configuration.get_configuration(WorkspaceSettings) + configuration.add_json_file(ws.projects[ws.default_project], optional=False, output=False) + + return configuration + + def configure_services(self, services: ServiceCollectionABC, environment: ApplicationEnvironment) -> ServiceProviderABC: + services.add_transient(RemoveConfig) + services.add_transient(Dependencies) + + return services.build_service_provider() diff --git a/kdb-web/angular.json b/kdb-web/angular.json index ee3ffca437..bc0d967006 100644 --- a/kdb-web/angular.json +++ b/kdb-web/angular.json @@ -40,8 +40,8 @@ "budgets": [ { "type": "initial", - "maximumWarning": "500kb", - "maximumError": "1mb" + "maximumWarning": "8mb", + "maximumError": "16mb" }, { "type": "anyComponentStyle", diff --git a/kdb-web/dockerfile b/kdb-web/dockerfile new file mode 100644 index 0000000000..4564d92066 --- /dev/null +++ b/kdb-web/dockerfile @@ -0,0 +1,2 @@ +FROM nginx:alpine +COPY ./dist/kdb-web/ /usr/share/nginx/html diff --git a/kdb-web/package.json b/kdb-web/package.json index e38246960c..d4f71ecdba 100644 --- a/kdb-web/package.json +++ b/kdb-web/package.json @@ -9,7 +9,8 @@ "prebuild": "npm run update-version", "build": "ng build", "watch": "ng build --watch --configuration development", - "test": "ng test" + "test": "ng test", + "build-docker": "ng build; docker build -t kdb-web:kdb-web ." }, "private": true, "dependencies": {