refactor: only builds & mixins should inherit
test are not working fully atmo
This commit is contained in:
parent
9dbc5f8ab0
commit
dfddd5ee33
5 changed files with 18 additions and 11 deletions
|
@ -6,7 +6,6 @@ classDiagram
|
||||||
DevopsBuild <|-- C4kMixin
|
DevopsBuild <|-- C4kMixin
|
||||||
|
|
||||||
DevopsBuild *-- BuildService
|
DevopsBuild *-- BuildService
|
||||||
DevopsDockerBuild *-- BuildService
|
|
||||||
DevopsDockerBuild *-- DockerBuildService
|
DevopsDockerBuild *-- DockerBuildService
|
||||||
C4kMixin *-- C4kBuildService
|
C4kMixin *-- C4kBuildService
|
||||||
```
|
```
|
|
@ -1,5 +1,11 @@
|
||||||
from .domain import Build, DockerBuild, C4kBuild
|
from .domain import Build, DockerBuild, C4kBuild
|
||||||
from .infrastructure import FileApi, ResourceApi, DockerApi
|
from .infrastructure import FileApi, ResourceApi, DockerApi
|
||||||
|
from os import chmod
|
||||||
|
import yaml
|
||||||
|
from .python_util import execute
|
||||||
|
from .credential import gopass_field_from_path, gopass_password_from_path
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class BuildService:
|
class BuildService:
|
||||||
|
@ -12,7 +18,6 @@ class BuildService:
|
||||||
|
|
||||||
class DockerBuildService:
|
class DockerBuildService:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.build_service = BuildService()
|
|
||||||
self.file_api = FileApi()
|
self.file_api = FileApi()
|
||||||
self.resource_api = ResourceApi()
|
self.resource_api = ResourceApi()
|
||||||
self.docker_api = DockerApi()
|
self.docker_api = DockerApi()
|
||||||
|
@ -32,7 +37,6 @@ class DockerBuildService:
|
||||||
self.file_api.cp_force(build.docker_build_commons_path(), build.build_path())
|
self.file_api.cp_force(build.docker_build_commons_path(), build.build_path())
|
||||||
|
|
||||||
def initialize_build_dir(self, build: DockerBuild):
|
def initialize_build_dir(self, build: DockerBuild):
|
||||||
self.build_service.initialize_build_dir(build)
|
|
||||||
self.file_api.clean_dir(build.build_path() + "/image/resources")
|
self.file_api.clean_dir(build.build_path() + "/image/resources")
|
||||||
if build.use_package_common_files:
|
if build.use_package_common_files:
|
||||||
self.__copy_build_resources_from_package__(build)
|
self.__copy_build_resources_from_package__(build)
|
||||||
|
@ -67,7 +71,7 @@ class C4kBuildService:
|
||||||
with open(
|
with open(
|
||||||
c4k_build.build.build_path() + "/out_c4k_config.yaml", "w", encoding="utf-8"
|
c4k_build.build.build_path() + "/out_c4k_config.yaml", "w", encoding="utf-8"
|
||||||
) as output_file:
|
) as output_file:
|
||||||
yaml.dump(c4k_build.c4k_mixin_config(), output_file)
|
yaml.dump(c4k_build.config(), output_file)
|
||||||
|
|
||||||
def write_c4k_auth(self, c4k_build: C4kBuild):
|
def write_c4k_auth(self, c4k_build: C4kBuild):
|
||||||
with open(
|
with open(
|
||||||
|
|
|
@ -29,14 +29,15 @@ def add_c4k_mixin_config(config,
|
||||||
|
|
||||||
class C4kMixin(DevopsBuild):
|
class C4kMixin(DevopsBuild):
|
||||||
def __init__(self, project, config):
|
def __init__(self, project, config):
|
||||||
self.build = C4kBuild(project, config)
|
super().__init__(project, config)
|
||||||
|
self.c4k_build = C4kBuild(project, config)
|
||||||
self.c4k_build_service = C4kBuildService()
|
self.c4k_build_service = C4kBuildService()
|
||||||
|
|
||||||
def write_c4k_config(self):
|
def write_c4k_config(self):
|
||||||
self.c4k_build_service.write_c4k_config(self.build)
|
self.c4k_build_service.write_c4k_config(self.c4k_build)
|
||||||
|
|
||||||
def write_c4k_auth(self):
|
def write_c4k_auth(self):
|
||||||
self.c4k_build_service.write_c4k_auth(self.build)
|
self.c4k_build_service.write_c4k_auth(self.c4k_build)
|
||||||
|
|
||||||
def c4k_apply(self, dry_run=False):
|
def c4k_apply(self, dry_run=False):
|
||||||
self.c4k_build_service.c4k_apply(self.build, dry_run)
|
self.c4k_build_service.c4k_apply(self.c4k_build, dry_run)
|
||||||
|
|
|
@ -26,12 +26,15 @@ def create_devops_docker_build_config(stage,
|
||||||
class DevopsDockerBuild(DevopsBuild):
|
class DevopsDockerBuild(DevopsBuild):
|
||||||
|
|
||||||
def __init__(self, project, config):
|
def __init__(self, project, config):
|
||||||
self.build = DockerBuild(project, config)
|
super().__init__(project, config)
|
||||||
|
self.docker_build = DockerBuild(project, config)
|
||||||
self.docker_build_service = DockerBuildService()
|
self.docker_build_service = DockerBuildService()
|
||||||
|
|
||||||
def initialize_build_dir(self):
|
def initialize_build_dir(self):
|
||||||
self.docker_build_service.initialize_build_dir(self.build)
|
super().initialize_build_dir()
|
||||||
|
self.docker_build_service.initialize_build_dir(self.docker_build)
|
||||||
|
|
||||||
|
# TODO: use application from here on
|
||||||
def image(self):
|
def image(self):
|
||||||
run('docker build -t ' + self.name() +
|
run('docker build -t ' + self.name() +
|
||||||
' --file ' + self.build_path() + '/image/Dockerfile '
|
' --file ' + self.build_path() + '/image/Dockerfile '
|
||||||
|
|
|
@ -34,7 +34,7 @@ def test_c4k_mixin(tmp_path):
|
||||||
mixin.initialize_build_dir()
|
mixin.initialize_build_dir()
|
||||||
assert mixin.build_path() == f'{tmp_path_str}/{build_dir}/{project_name}/{module_name}'
|
assert mixin.build_path() == f'{tmp_path_str}/{build_dir}/{project_name}/{module_name}'
|
||||||
|
|
||||||
mixin.put('fqdn', 'testing.test')
|
mixin.build.update_runtime_config('test.de', None, None)
|
||||||
|
|
||||||
mixin.write_c4k_config()
|
mixin.write_c4k_config()
|
||||||
assert 'fqdn' in mixin.c4k_mixin_config
|
assert 'fqdn' in mixin.c4k_mixin_config
|
||||||
|
|
Loading…
Reference in a new issue