diff --git a/app/core/woodpecker.py b/app/core/woodpecker.py index ae8553b..caa29d5 100644 --- a/app/core/woodpecker.py +++ b/app/core/woodpecker.py @@ -1,10 +1,12 @@ import logging from collections import deque from multiprocessing import Process, Lock +from pathlib import Path from typing import Annotated from injectable import injectable, Autowired, autowired +from app.config import get_settings from app.model.webhook import WoodpeckerEvent from app.services import Passwords, GitService, DockerService @@ -12,10 +14,12 @@ logger = logging.getLogger(__name__) class WoodpeckerRunner(Process): - def __init__(self, git: GitService, docker: DockerService, success_callback=None, error_callback=None): + def __init__(self, git: GitService, docker: DockerService, passwords: Passwords, + success_callback=None, error_callback=None): super().__init__(daemon=True) self._git = git self._docker = docker + self._passwords = passwords self._success_callback = success_callback self._error_callback = error_callback self._event: WoodpeckerEvent | None = None @@ -30,14 +34,12 @@ class WoodpeckerRunner(Process): if service is None: logger.info("No service found.") return self._success_callback() - + service_path = f"{get_settings().git.path}/compose/{service}/docker-compose.yml" self._git.checkout(self._event.commit) - """ - TODO: - check for *.mo.* files - subs mo from pass - docker compose up -d -f service/docker-compose.yml - """ + for file in self._event.files: + if file.__contains__('.mo.'): + pass + self._docker.reload(Path(service_path)) return self._success_callback() except Exception as e: diff --git a/app/services/containers.py b/app/services/containers.py index a89343b..20f0098 100644 --- a/app/services/containers.py +++ b/app/services/containers.py @@ -1,4 +1,5 @@ import logging +from pathlib import Path import docker from docker.models.containers import Container @@ -33,3 +34,6 @@ class DockerService: @property def tree(self) -> Tree: return self._tree + + def reload(self, compose_path: Path): + pass