51 lines
1.6 KiB
Python
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())
|