Merge branch 'main' of ssh://repo.prod.meissa.de:2222/meissa/dda-devops-build
This commit is contained in:
commit
d90f68ce1a
10 changed files with 60 additions and 44 deletions
|
@ -80,3 +80,10 @@ ddadevops-image-publish:
|
||||||
stage: image
|
stage: image
|
||||||
script:
|
script:
|
||||||
- cd infrastructure/ddadevops && pyb image publish
|
- cd infrastructure/ddadevops && pyb image publish
|
||||||
|
|
||||||
|
kotlin-image-publish:
|
||||||
|
<<: *img
|
||||||
|
<<: *tag_only
|
||||||
|
stage: image
|
||||||
|
script:
|
||||||
|
- cd infrastructure/kotlin && pyb image publish
|
||||||
|
|
2
build.py
2
build.py
|
@ -33,7 +33,7 @@ default_task = "dev"
|
||||||
name = "ddadevops"
|
name = "ddadevops"
|
||||||
MODULE = "not-used"
|
MODULE = "not-used"
|
||||||
PROJECT_ROOT_PATH = "."
|
PROJECT_ROOT_PATH = "."
|
||||||
version = "4.9.2-dev"
|
version = "4.9.4-dev"
|
||||||
summary = "tools to support builds combining gopass, terraform, dda-pallet, aws & hetzner-cloud"
|
summary = "tools to support builds combining gopass, terraform, dda-pallet, aws & hetzner-cloud"
|
||||||
description = __doc__
|
description = __doc__
|
||||||
authors = [Author("meissa GmbH", "buero@meissa-gmbh.de")]
|
authors = [Author("meissa GmbH", "buero@meissa-gmbh.de")]
|
||||||
|
|
|
@ -6,7 +6,7 @@ from ddadevops import *
|
||||||
name = "ddadevops"
|
name = "ddadevops"
|
||||||
MODULE = "clj-cljs"
|
MODULE = "clj-cljs"
|
||||||
PROJECT_ROOT_PATH = "../.."
|
PROJECT_ROOT_PATH = "../.."
|
||||||
version = "4.9.2-dev"
|
version = "4.9.4-dev"
|
||||||
|
|
||||||
@init
|
@init
|
||||||
def initialize(project):
|
def initialize(project):
|
||||||
|
|
|
@ -6,7 +6,7 @@ from ddadevops import *
|
||||||
name = "ddadevops"
|
name = "ddadevops"
|
||||||
MODULE = "clj"
|
MODULE = "clj"
|
||||||
PROJECT_ROOT_PATH = "../.."
|
PROJECT_ROOT_PATH = "../.."
|
||||||
version = "4.9.2-dev"
|
version = "4.9.4-dev"
|
||||||
|
|
||||||
@init
|
@init
|
||||||
def initialize(project):
|
def initialize(project):
|
||||||
|
|
|
@ -6,7 +6,7 @@ from ddadevops import *
|
||||||
name = "ddadevops"
|
name = "ddadevops"
|
||||||
MODULE = "ddadevops"
|
MODULE = "ddadevops"
|
||||||
PROJECT_ROOT_PATH = "../.."
|
PROJECT_ROOT_PATH = "../.."
|
||||||
version = "4.9.2-dev"
|
version = "4.9.4-dev"
|
||||||
|
|
||||||
|
|
||||||
@init
|
@init
|
||||||
|
|
|
@ -6,7 +6,7 @@ from ddadevops import *
|
||||||
name = "ddadevops"
|
name = "ddadevops"
|
||||||
MODULE = "dind"
|
MODULE = "dind"
|
||||||
PROJECT_ROOT_PATH = "../.."
|
PROJECT_ROOT_PATH = "../.."
|
||||||
version = "4.9.2-dev"
|
version = "4.9.4-dev"
|
||||||
|
|
||||||
|
|
||||||
@init
|
@init
|
||||||
|
|
|
@ -6,7 +6,7 @@ from ddadevops import *
|
||||||
name = "ddadevops"
|
name = "ddadevops"
|
||||||
MODULE = "kotlin"
|
MODULE = "kotlin"
|
||||||
PROJECT_ROOT_PATH = "../.."
|
PROJECT_ROOT_PATH = "../.."
|
||||||
version = "4.9.2-dev"
|
version = "4.9.4-dev"
|
||||||
|
|
||||||
|
|
||||||
@init
|
@init
|
||||||
|
|
|
@ -6,7 +6,7 @@ from ddadevops import *
|
||||||
name = "ddadevops"
|
name = "ddadevops"
|
||||||
MODULE = "python"
|
MODULE = "python"
|
||||||
PROJECT_ROOT_PATH = "../.."
|
PROJECT_ROOT_PATH = "../.."
|
||||||
version = "4.9.2-dev"
|
version = "4.9.4-dev"
|
||||||
|
|
||||||
|
|
||||||
@init
|
@init
|
||||||
|
|
|
@ -48,11 +48,11 @@ class BuildFile(Validateable):
|
||||||
def __get_file_type_regex_str(self, file_type: BuildFileType):
|
def __get_file_type_regex_str(self, file_type: BuildFileType):
|
||||||
match file_type:
|
match file_type:
|
||||||
case BuildFileType.JAVA_GRADLE:
|
case BuildFileType.JAVA_GRADLE:
|
||||||
return "[0-9]*\\.[0-9]*\\.[0-9]*(-SNAPSHOT)?"
|
return r'(?P<pre_version>\bversion\s?=\s?)\"(?P<version>\d*\.\d*\.\d*(-SNAPSHOT)?)\"'
|
||||||
case BuildFileType.PYTHON:
|
case BuildFileType.PYTHON:
|
||||||
return "[0-9]*\\.[0-9]*\\.[0-9]*(-SNAPSHOT)?(-dev)?[0-9]*"
|
return r'(?P<pre_version>\bversion\s?=\s?)\"(?P<version>\d*\.\d*\.\d*(-SNAPSHOT|-dev\d*)?)\"'
|
||||||
case BuildFileType.JAVA_CLOJURE:
|
case BuildFileType.JAVA_CLOJURE:
|
||||||
return r'(?P<project>\(defproject\s(\S)*\s)\"(?P<version>\d*\.\d*\.\d*(-SNAPSHOT)?)\"'
|
return r'(?P<pre_version>\(defproject\s(\S)*\s)\"(?P<version>\d*\.\d*\.\d*(-SNAPSHOT)?)\"'
|
||||||
case _:
|
case _:
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
|
@ -62,24 +62,7 @@ class BuildFile(Validateable):
|
||||||
match build_file_type:
|
match build_file_type:
|
||||||
case BuildFileType.JS:
|
case BuildFileType.JS:
|
||||||
version_str = json.loads(self.content)["version"]
|
version_str = json.loads(self.content)["version"]
|
||||||
case BuildFileType.JAVA_GRADLE:
|
case BuildFileType.JAVA_GRADLE | BuildFileType.PYTHON | BuildFileType.JAVA_CLOJURE:
|
||||||
# TODO: '\nversion = ' will not parse all ?!
|
|
||||||
version_line = re.search("\nversion = .*", self.content)
|
|
||||||
version_line_group = version_line.group()
|
|
||||||
version_string = re.search(
|
|
||||||
self.__get_file_type_regex_str(build_file_type), version_line_group
|
|
||||||
)
|
|
||||||
version_str = version_string.group()
|
|
||||||
case BuildFileType.PYTHON:
|
|
||||||
# TODO: '\nversion = ' will not parse all ?!
|
|
||||||
version_line = re.search("\nversion = .*\n", self.content)
|
|
||||||
version_line_group = version_line.group()
|
|
||||||
version_string = re.search(
|
|
||||||
self.__get_file_type_regex_str(build_file_type),
|
|
||||||
version_line_group,
|
|
||||||
)
|
|
||||||
version_str = version_string.group()
|
|
||||||
case BuildFileType.JAVA_CLOJURE:
|
|
||||||
version_str = re.search(self.__get_file_type_regex_str(build_file_type), self.content).group("version")
|
version_str = re.search(self.__get_file_type_regex_str(build_file_type), self.content).group("version")
|
||||||
except:
|
except:
|
||||||
raise RuntimeError(f"Version not found in file {self.file_path}")
|
raise RuntimeError(f"Version not found in file {self.file_path}")
|
||||||
|
@ -101,24 +84,10 @@ class BuildFile(Validateable):
|
||||||
json_data = json.loads(self.content)
|
json_data = json.loads(self.content)
|
||||||
json_data["version"] = new_version.to_string()
|
json_data["version"] = new_version.to_string()
|
||||||
self.content = json.dumps(json_data, indent=4)
|
self.content = json.dumps(json_data, indent=4)
|
||||||
case BuildFileType.JAVA_GRADLE:
|
case BuildFileType.JAVA_GRADLE | BuildFileType.PYTHON | BuildFileType.JAVA_CLOJURE:
|
||||||
substitute = re.sub(
|
|
||||||
f'\nversion = "{self.__get_file_type_regex_str(build_file_type)}"',
|
|
||||||
f'\nversion = "{new_version.to_string()}"',
|
|
||||||
self.content,
|
|
||||||
)
|
|
||||||
self.content = substitute
|
|
||||||
case BuildFileType.PYTHON:
|
|
||||||
substitute = re.sub(
|
|
||||||
f'\nversion = "{self.__get_file_type_regex_str(build_file_type)}"',
|
|
||||||
f'\nversion = "{new_version.to_string()}"',
|
|
||||||
self.content,
|
|
||||||
)
|
|
||||||
self.content = substitute
|
|
||||||
case BuildFileType.JAVA_CLOJURE:
|
|
||||||
substitute = re.sub(
|
substitute = re.sub(
|
||||||
self.__get_file_type_regex_str(build_file_type),
|
self.__get_file_type_regex_str(build_file_type),
|
||||||
fr'\g<project>"{new_version.to_string()}"',
|
fr'\g<pre_version>"{new_version.to_string()}"',
|
||||||
self.content,
|
self.content,
|
||||||
1,
|
1,
|
||||||
)
|
)
|
||||||
|
|
|
@ -182,3 +182,43 @@ def test_should_parse_and_set_version_for_clj():
|
||||||
'\n(defproject org.domaindrivenarchitecture/c4k-jira "2.0.0"\n:dependencies [[org.clojure/clojure "1.11.0"]]\n)\n '
|
'\n(defproject org.domaindrivenarchitecture/c4k-jira "2.0.0"\n:dependencies [[org.clojure/clojure "1.11.0"]]\n)\n '
|
||||||
== sut.content
|
== sut.content
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def test_should_throw_for_clj_wrong_version():
|
||||||
|
sut = BuildFile(
|
||||||
|
Path("./project.clj"),
|
||||||
|
"""
|
||||||
|
(defproject org.domaindrivenarchitecture/c4k-jira "1.1.5-Snapshot"
|
||||||
|
:description "jira c4k-installation package"
|
||||||
|
:url "https://domaindrivenarchitecture.org"
|
||||||
|
)
|
||||||
|
""",
|
||||||
|
)
|
||||||
|
|
||||||
|
with pytest.raises(RuntimeError):
|
||||||
|
sut.get_version()
|
||||||
|
|
||||||
|
def test_should_ignore_first_version_for_py():
|
||||||
|
sut = BuildFile(
|
||||||
|
Path("./build.py"),
|
||||||
|
"""
|
||||||
|
from pybuilder.core import init, use_plugin, Author
|
||||||
|
use_plugin("python.core")
|
||||||
|
|
||||||
|
name = "ddadevops"
|
||||||
|
project_version = "0.0.2-dev1"
|
||||||
|
version = "1.1.5-dev12"
|
||||||
|
summary = "tools to support builds combining gopass, terraform, dda-pallet, aws & hetzner-cloud"
|
||||||
|
""",
|
||||||
|
)
|
||||||
|
assert sut.get_version() == Version.from_str("1.1.5-dev12", "dev")
|
||||||
|
|
||||||
|
def test_should_ignore_first_version_for_gradle():
|
||||||
|
sut = BuildFile(
|
||||||
|
Path("./build.gradle"),
|
||||||
|
"""
|
||||||
|
kotlin_version = "3.3.3"
|
||||||
|
version = "1.1.5-SNAPSHOT"
|
||||||
|
|
||||||
|
""",
|
||||||
|
)
|
||||||
|
assert sut.get_version() == Version.from_str("1.1.5-SNAPSHOT", "SNAPSHOT")
|
Loading…
Reference in a new issue