|
|
|
@ -1,36 +1,32 @@
|
|
|
|
|
from src.main.python.ddadevops.infrastructure.release_mixin import ReleaseContextRepository, GitApi
|
|
|
|
|
from src.main.python.ddadevops.domain import Version
|
|
|
|
|
from src.main.python.ddadevops.infrastructure.release_mixin import ReleaseContextRepository, VersionRepository, GitApi
|
|
|
|
|
from src.main.python.ddadevops.domain import Version, Release
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class PrepareReleaseService():
|
|
|
|
|
|
|
|
|
|
def __init__(self, release_repo: ReleaseContextRepository):
|
|
|
|
|
self.release_repo = release_repo
|
|
|
|
|
self.release = release_repo.get_release() # TODO: make stateless: argument to receiving func
|
|
|
|
|
def __init__(self):
|
|
|
|
|
self.git_api = GitApi()
|
|
|
|
|
|
|
|
|
|
def __write_and_commit_version(self, version: Version, commit_message: str):
|
|
|
|
|
self.release.is_valid()
|
|
|
|
|
def __write_and_commit_version(self, release: Release, version_repository: VersionRepository, version: Version, commit_message: str):
|
|
|
|
|
release.is_valid()
|
|
|
|
|
|
|
|
|
|
self.release_repo.version_repository.write_file(version.get_version_string())
|
|
|
|
|
self.git_api.add_file(self.release_repo.version_repository.file)
|
|
|
|
|
version_repository.write_file(version.get_version_string())
|
|
|
|
|
self.git_api.add_file(version_repository.file)
|
|
|
|
|
self.git_api.commit(commit_message)
|
|
|
|
|
|
|
|
|
|
def write_and_commit_release(self):
|
|
|
|
|
self.__write_and_commit_version(self.release.release_version(), commit_message=f'Release v{self.release.release_version().get_version_string()}')
|
|
|
|
|
def write_and_commit_release(self, release: Release, version_repository: VersionRepository):
|
|
|
|
|
self.__write_and_commit_version(release, version_repository, release.release_version(), commit_message=f'Release v{release.release_version().get_version_string()}')
|
|
|
|
|
|
|
|
|
|
def write_and_commit_bump(self):
|
|
|
|
|
self.__write_and_commit_version(self.release.bump_version(), commit_message='Version bump')
|
|
|
|
|
def write_and_commit_bump(self, release: Release, version_repository: VersionRepository):
|
|
|
|
|
self.__write_and_commit_version(release, version_repository, release.bump_version(), commit_message='Version bump')
|
|
|
|
|
|
|
|
|
|
class TagAndPushReleaseService():
|
|
|
|
|
|
|
|
|
|
def __init__(self, git_api: GitApi, release_repo: ReleaseContextRepository):
|
|
|
|
|
def __init__(self, git_api: GitApi):
|
|
|
|
|
self.git_api = git_api
|
|
|
|
|
self.release_repo = release_repo
|
|
|
|
|
self.release = release_repo.get_release() # TODO: make stateless: argument to receiving func
|
|
|
|
|
|
|
|
|
|
def tag_release(self):
|
|
|
|
|
annotation = 'v' + self.release.version.get_version_string()
|
|
|
|
|
def tag_release(self, release_repo: ReleaseContextRepository):
|
|
|
|
|
annotation = 'v' + release_repo.get_release().version.get_version_string()
|
|
|
|
|
message = 'Release ' + annotation
|
|
|
|
|
self.git_api.tag_annotated_second_last(annotation, message)
|
|
|
|
|
|
|
|
|
|