dda-devops-build/src/main/python/ddadevops/devops_build.py
2023-04-28 13:32:10 +02:00

51 lines
1.6 KiB
Python

from typing import Optional
from subprocess import run, CalledProcessError
import deprecation
from .domain import Devops
from .infrastructure import ProjectRepository, FileApi
@deprecation.deprecated(deprecated_in="3.2", details="create objects direct instead")
def create_devops_build_config(
stage, project_root_path, module, build_dir_name="target"
):
return {
"stage": stage,
"project_root_path": project_root_path,
"module": module,
"build_dir_name": build_dir_name,
}
def get_devops_build(project):
return project.get_property("devops_build")
class DevopsBuild:
def __init__(self, project, config: Optional[dict] = None, devops: Optional[Devops] = None):
self.project = project
self.file_api = FileApi()
self.repo = ProjectRepository()
if not devops:
if not config:
raise ValueError("Build parameters could not be set!")
devops = Devops(
stage=config["stage"],
project_root_path=config["project_root_path"],
module=config["module"],
name=project.name,
build_dir_name=config["build_dir_name"],
)
self.repo.set_devops(self.project, devops)
self.repo.set_build(self.project, self)
def name(self):
devops = self.repo.get_devops(self.project)
return devops.name
def build_path(self):
devops = self.repo.get_devops(self.project)
return devops.build_path()
def initialize_build_dir(self):
devops = self.repo.get_devops(self.project)
self.file_api.clean_dir(devops.build_path())