dda-devops-build/src/main/python/ddadevops/devops_build.py

52 lines
1.6 KiB
Python
Raw Normal View History

2023-03-31 14:50:14 +02:00
from typing import Optional
2023-03-17 16:05:39 +01:00
from subprocess import run, CalledProcessError
2023-03-31 14:59:37 +02:00
import deprecation
2023-03-14 12:04:52 +01:00
from .domain import Devops
2023-03-12 17:40:10 +01:00
from .infrastructure import ProjectRepository, FileApi
2020-03-03 10:20:18 +01:00
2023-03-14 18:06:04 +01:00
@deprecation.deprecated(deprecated_in="3.2", details="create objects direct instead")
2023-03-05 13:01:50 +01:00
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,
}
2020-03-07 15:07:14 +01:00
def get_devops_build(project):
2023-03-05 13:01:50 +01:00
return project.get_property("devops_build")
class DevopsBuild:
2023-03-31 14:50:14 +02:00
def __init__(self, project, config: Optional[dict] = None, devops: Optional[Devops] = None):
2023-03-12 17:40:10 +01:00
self.project = project
self.file_api = FileApi()
self.repo = ProjectRepository()
2023-03-31 15:03:49 +02:00
if not devops:
2023-04-19 15:22:34 +02:00
if not config:
raise ValueError("Build parameters could not be set!")
2023-03-14 18:06:04 +01:00
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"],
)
2023-03-31 14:59:37 +02:00
2023-03-14 16:11:00 +01:00
self.repo.set_devops(self.project, devops)
2023-03-17 16:05:39 +01:00
self.repo.set_build(self.project, self)
2020-03-03 16:34:12 +01:00
2020-03-03 10:20:18 +01:00
def name(self):
2023-03-14 16:11:00 +01:00
devops = self.repo.get_devops(self.project)
return devops.name
2020-03-03 10:20:18 +01:00
def build_path(self):
2023-03-14 16:11:00 +01:00
devops = self.repo.get_devops(self.project)
return devops.build_path()
2020-03-03 10:20:18 +01:00
def initialize_build_dir(self):
2023-03-14 16:11:00 +01:00
devops = self.repo.get_devops(self.project)
self.file_api.clean_dir(devops.build_path())