Mo basics
This commit is contained in:
parent
1341b022d4
commit
8ee950940e
3 changed files with 44 additions and 26 deletions
|
|
@ -8,21 +8,23 @@ 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
|
||||
from app.services import GitService, DockerService
|
||||
from app.services.mo import Mo
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class WoodpeckerRunner(Process):
|
||||
def __init__(self, git: GitService, docker: DockerService, passwords: Passwords,
|
||||
def __init__(self, git: GitService, docker: DockerService, mo: Mo,
|
||||
success_callback=None, error_callback=None):
|
||||
super().__init__(daemon=True)
|
||||
self._git = git
|
||||
self._docker = docker
|
||||
self._passwords = passwords
|
||||
self._mo = mo
|
||||
self._success_callback = success_callback
|
||||
self._error_callback = error_callback
|
||||
self._event: WoodpeckerEvent | None = None
|
||||
self._root = get_settings().git.path
|
||||
|
||||
def process_event(self, event: WoodpeckerEvent):
|
||||
self._event = event
|
||||
|
|
@ -34,12 +36,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"
|
||||
service_path = f"{self._root}/compose/{service}/docker-compose.yml"
|
||||
self._git.checkout(self._event.commit)
|
||||
for file in self._event.files:
|
||||
if file.__contains__('.mo.'):
|
||||
pass
|
||||
self._docker.reload(Path(service_path))
|
||||
self._mo.process(Path(f"{self._root}{file}").absolute())
|
||||
self._docker.reload(Path(service_path).absolute())
|
||||
|
||||
return self._success_callback()
|
||||
except Exception as e:
|
||||
|
|
@ -63,8 +65,8 @@ class WoodpeckerRunner(Process):
|
|||
@injectable(singleton=True)
|
||||
class Woodpecker:
|
||||
@autowired
|
||||
def __init__(self, passwords: Annotated[Passwords, Autowired]):
|
||||
self._passwords = passwords
|
||||
def __init__(self, mo: Annotated[Mo, Autowired]):
|
||||
self._mo = mo
|
||||
self._git = GitService()
|
||||
self._docker = DockerService()
|
||||
self._runner: WoodpeckerRunner | None = None
|
||||
|
|
@ -82,7 +84,8 @@ class Woodpecker:
|
|||
|
||||
def _start_runner(self, event: WoodpeckerEvent):
|
||||
with self._lock:
|
||||
self._runner = WoodpeckerRunner(self._git, self._docker, self._on_runner_completed)
|
||||
self._runner = WoodpeckerRunner(self._git, self._docker, self._mo,
|
||||
self._on_runner_completed, self._on_runner_error)
|
||||
self._runner.process_event(event)
|
||||
|
||||
def _on_runner_completed(self):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue