Compare commits
3 commits
4a23b0b800
...
0cdf4b4c9c
Author | SHA1 | Date | |
---|---|---|---|
0cdf4b4c9c | |||
b93772d3a1 | |||
a109759c68 |
5 changed files with 43 additions and 30 deletions
57
build.py
57
build.py
|
@ -1,10 +1,29 @@
|
||||||
|
import sys
|
||||||
|
import os
|
||||||
|
from pathlib import Path
|
||||||
|
from ddadevops import *
|
||||||
|
|
||||||
|
# getting the name of the directory
|
||||||
|
# where the this file is present.
|
||||||
|
current = os.path.dirname(os.path.realpath(__file__))
|
||||||
|
|
||||||
|
# adding the current directory to
|
||||||
|
# the sys.path.
|
||||||
|
sys.path.append(current)
|
||||||
|
|
||||||
|
# now we can import the module in the current
|
||||||
|
# directory.
|
||||||
|
|
||||||
from pybuilder.core import task, init
|
from pybuilder.core import task, init
|
||||||
from ddadevops import *
|
from ddadevops import *
|
||||||
from version import *
|
from release_mixin import ReleaseMixin, create_release_mixin_config
|
||||||
from release_mixin import *
|
|
||||||
|
|
||||||
CONFIG_FILE = ''
|
CONFIG_FILE = Path('config.json')
|
||||||
MAIN_BRANCH = 'main'
|
MAIN_BRANCH = 'main'
|
||||||
|
STAGE = 'test'
|
||||||
|
PROJECT_ROOT_PATH = '.'
|
||||||
|
MODULE = 'test'
|
||||||
|
BUILD_DIR_NAME = "build_dir"
|
||||||
|
|
||||||
class MyBuild(ReleaseMixin):
|
class MyBuild(ReleaseMixin):
|
||||||
pass
|
pass
|
||||||
|
@ -13,33 +32,17 @@ class MyBuild(ReleaseMixin):
|
||||||
def initialize(project):
|
def initialize(project):
|
||||||
project.build_depends_on('ddadevops>=3.1.2')
|
project.build_depends_on('ddadevops>=3.1.2')
|
||||||
config = create_release_mixin_config(CONFIG_FILE, MAIN_BRANCH)
|
config = create_release_mixin_config(CONFIG_FILE, MAIN_BRANCH)
|
||||||
|
config.update({'stage': STAGE,
|
||||||
|
'module': MODULE,
|
||||||
|
'project_root_path': PROJECT_ROOT_PATH,
|
||||||
|
'build_dir_name': BUILD_DIR_NAME})
|
||||||
build = MyBuild(project, config)
|
build = MyBuild(project, config)
|
||||||
build.init()
|
build.initialize_build_dir()
|
||||||
|
|
||||||
@task
|
@task
|
||||||
def release(project):
|
def release(project):
|
||||||
build = get_devops_build(project)
|
build = get_devops_build(project)
|
||||||
|
|
||||||
prepare_release(build)
|
build.init_release()
|
||||||
tag_and_push_release(build)
|
build.prepare_release()
|
||||||
|
build.tag_and_push_release()
|
||||||
prepare_version_bump(build)
|
|
||||||
tag_and_push_version_bump(build)
|
|
||||||
|
|
||||||
def prepare_release(build):
|
|
||||||
release_version = build.release_version
|
|
||||||
build.prepare(release_version)
|
|
||||||
|
|
||||||
def tag_and_push_release(build):
|
|
||||||
release_version = build.release_version
|
|
||||||
build.tag_and_push(release_version)
|
|
||||||
|
|
||||||
def prepare_version_bump(build):
|
|
||||||
bump_version = build.bump_version
|
|
||||||
build.prepare(bump_version)
|
|
||||||
|
|
||||||
def tag_and_push_version_bump(build):
|
|
||||||
bump_version = build.bump_version
|
|
||||||
build.tag_and_push(bump_version)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
3
config.json
Normal file
3
config.json
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"version": "123.125.1-SNAPSHOT"
|
||||||
|
}
|
|
@ -42,21 +42,28 @@ class GitRepository():
|
||||||
|
|
||||||
def tag_annotated(self, annotation: str, message: str):
|
def tag_annotated(self, annotation: str, message: str):
|
||||||
self.system_repository.run_checked('git', 'tag', '-a', annotation, '-m', message)
|
self.system_repository.run_checked('git', 'tag', '-a', annotation, '-m', message)
|
||||||
|
return self.system_repository.stdout
|
||||||
|
|
||||||
def tag_annotated(self, annotation: str, message: str, count: int):
|
def tag_annotated(self, annotation: str, message: str, count: int):
|
||||||
self.system_repository.run_checked('git', 'tag', '-a', annotation, '-m', message, f'HEAD~{count}')
|
self.system_repository.run_checked('git', 'tag', '-a', annotation, '-m', message, f'HEAD~{count}')
|
||||||
|
return self.system_repository.stdout
|
||||||
|
|
||||||
def get_current_branch(self):
|
def get_current_branch(self):
|
||||||
self.system_repository.run_checked('git', 'branch', '--show-current')
|
self.system_repository.run_checked('git', 'branch', '--show-current')
|
||||||
|
return ''.join(self.system_repository.stdout).rstrip()
|
||||||
|
|
||||||
def add_file(self, file_path: Path):
|
def add_file(self, file_path: Path):
|
||||||
self.system_repository.run_checked('git', 'add', file_path)
|
self.system_repository.run_checked('git', 'add', file_path)
|
||||||
|
return self.system_repository.stdout
|
||||||
|
|
||||||
def commit(self, commit_message: str):
|
def commit(self, commit_message: str):
|
||||||
self.system_repository.run_checked('git', 'commit', '-m', commit_message)
|
self.system_repository.run_checked('git', 'commit', '-m', commit_message)
|
||||||
|
return self.system_repository.stdout
|
||||||
|
|
||||||
def push(self):
|
def push(self):
|
||||||
self.system_repository.run_checked('git', 'push')
|
self.system_repository.run_checked('git', 'push')
|
||||||
|
return self.system_repository.stdout
|
||||||
|
|
||||||
def checkout(self, branch: str):
|
def checkout(self, branch: str):
|
||||||
self.system_repository.run_checked('git', 'checkout', branch)
|
self.system_repository.run_checked('git', 'checkout', branch)
|
||||||
|
return self.system_repository.stdout
|
||||||
|
|
|
@ -41,7 +41,7 @@ class ReleaseMixin(DevopsBuild):
|
||||||
self.bump_version = self.release_version.create_bump_version()
|
self.bump_version = self.release_version.create_bump_version()
|
||||||
|
|
||||||
def prepare_release(self):
|
def prepare_release(self):
|
||||||
prepare_release_service = PrepareReleaseService(self.version_repo, self.config_file, self.main_branch)
|
prepare_release_service = PrepareReleaseService(self.version_repo, self.git_repo, self.config_file, self.main_branch)
|
||||||
if self.release_version is None or self.bump_version is None:
|
if self.release_version is None or self.bump_version is None:
|
||||||
raise Exception('prepare_release was called before init_release')
|
raise Exception('prepare_release was called before init_release')
|
||||||
|
|
||||||
|
@ -49,6 +49,6 @@ class ReleaseMixin(DevopsBuild):
|
||||||
prepare_release_service.write_and_commit_release(self.release_version)
|
prepare_release_service.write_and_commit_release(self.release_version)
|
||||||
prepare_release_service.write_and_commit_bump(self.bump_version)
|
prepare_release_service.write_and_commit_bump(self.bump_version)
|
||||||
|
|
||||||
def tag_and_push(self):
|
def tag_and_push_release(self):
|
||||||
tag_and_push_release_service = TagAndPushReleaseService(self.git_repo)
|
tag_and_push_release_service = TagAndPushReleaseService(self.git_repo)
|
||||||
tag_and_push_release_service.tag_and_push_release(self.release_version)
|
tag_and_push_release_service.tag_and_push_release(self.release_version)
|
||||||
|
|
|
@ -64,6 +64,6 @@ class TagAndPushReleaseService():
|
||||||
annotation = 'v' + release_version.get_version_string()
|
annotation = 'v' + release_version.get_version_string()
|
||||||
message = 'Release ' + annotation
|
message = 'Release ' + annotation
|
||||||
self.git_repository.tag_annotated(annotation, message, 1)
|
self.git_repository.tag_annotated(annotation, message, 1)
|
||||||
self.git_repository.push()
|
# self.git_repository.push()
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue