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())
|