Compare commits
6 Commits
1.0.8.post
...
1.0.8.post
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e9355471ba | ||
|
|
3bbbe946a1 | ||
|
|
cc2f6353ac | ||
|
|
6e1bff135b | ||
|
|
f74633cee3 | ||
|
|
3bb580689a |
49
Jenkinsfile
vendored
49
Jenkinsfile
vendored
@@ -6,7 +6,11 @@
|
||||
// You should have received a copy of the license along with this
|
||||
// work. If not, see <https://creativecommons.org/licenses/by-nc-sa/4.0/>.
|
||||
|
||||
|
||||
import groovy.xml.XmlUtil
|
||||
import static javax.xml.xpath.XPathConstants.*
|
||||
import javax.xml.xpath.*
|
||||
import groovy.xml.DOMBuilder
|
||||
import groovy.xml.dom.DOMCategory
|
||||
|
||||
// configurable settings:
|
||||
// use to send email if workflow problem
|
||||
@@ -28,6 +32,10 @@ def _MkDocsWebURL = "dabauto--mkdocs-web.dmz.chacha.home/mkdocs-web/"
|
||||
def _MkDocsWebCredentials = "2c5b684e-3787-4b37-8aca-b3dd4a383fe2"
|
||||
def _PypiCredentials = "Pypi"
|
||||
|
||||
|
||||
def badge_coverage = addEmbeddableBadgeConfiguration(id: "coverage", subject: "unit-test coverage")
|
||||
def badge_complexity = addEmbeddableBadgeConfiguration(id: "complexity", subject: "code complexity")
|
||||
|
||||
// commands Helper: /!\ Made for GITEA /!\
|
||||
String determineRepoUserName() {
|
||||
return scm.getUserRemoteConfigs()[0].getUrl().tokenize('/')[3].split("\\.")[0]
|
||||
@@ -63,6 +71,28 @@ String ExtractBaseVersion(inVersion) {
|
||||
return matcher[0][1]
|
||||
}
|
||||
|
||||
int GetCoverageValue(String CoverageFilePath,String XPath)
|
||||
{
|
||||
//File file = new File(CoverageFilePath)
|
||||
//coverageReportRaw = file.getText('UTF-8')
|
||||
coverageReportRaw = readFile(CoverageFilePath)
|
||||
coverageReport = DOMBuilder.parse(new StringReader(coverageReportRaw), false, false)
|
||||
coverageReportRoot = coverageReport.documentElement
|
||||
|
||||
def xpath = XPathFactory.newInstance().newXPath()
|
||||
res = xpath.evaluate(XPath,coverageReportRoot,NUMBER)
|
||||
return res
|
||||
}
|
||||
|
||||
int GetCoverageValue_lines_valid(String CoverageFilePath) { return GetCoverageValue(CoverageFilePath,"/coverage/@lines-valid") }
|
||||
int GetCoverageValue_lines_covered(String CoverageFilePath) { return GetCoverageValue(CoverageFilePath,"/coverage/@lines-covered") }
|
||||
int GetCoverageValue_line_rate(String CoverageFilePath) { return GetCoverageValue(CoverageFilePath,"/coverage/@line-rate") }
|
||||
int GetCoverageValue_branches_valid(String CoverageFilePath) { return GetCoverageValue(CoverageFilePath,"/coverage/@branches-valid") }
|
||||
int GetCoverageValue_branches_covered(String CoverageFilePath) { return GetCoverageValue(CoverageFilePath,"/coverage/@branches-covered") }
|
||||
int GetCoverageValue_branch_rate(String CoverageFilePath) { return GetCoverageValue(CoverageFilePath,"/coverage/@branch-rate") }
|
||||
int GetCoverageValue_branches_complexity(String CoverageFilePath) { return GetCoverageValue(CoverageFilePath,"/coverage/@branches-complexity") }
|
||||
|
||||
|
||||
pipeline {
|
||||
|
||||
// for Docker based build (preferable)
|
||||
@@ -400,6 +430,23 @@ pipeline {
|
||||
println unit_test_full_name__html
|
||||
unit_test_full_name__xml=findFiles(glob: "helpers-results/unit_test_full/*.xml")[0].getName()
|
||||
println unit_test_full_name__xml
|
||||
|
||||
coverage_report_path = "helpers-results/unit_test_coverage/test_coverage.xml"
|
||||
println GetCoverageValue_lines_valid(coverage_report_path)
|
||||
println GetCoverageValue_lines_covered(coverage_report_path)
|
||||
println GetCoverageValue_line_rate(coverage_report_path)
|
||||
println GetCoverageValue_branches_valid(coverage_report_path)
|
||||
println GetCoverageValue_branches_covered(coverage_report_path)
|
||||
println GetCoverageValue_branch_rate(coverage_report_path)
|
||||
println GetCoverageValue_branches_complexity(coverage_report_path)
|
||||
|
||||
full_rate = (GetCoverageValue_line_rate(coverage_report_path) + GetCoverageValue_branch_rate(coverage_report_path)) / 2
|
||||
sz_full_rate =Float.toString(full_rate.setScale(2, RoundingMode.HALF_EVEN))
|
||||
badge_coverage.setStatus(sz_full_rate)
|
||||
|
||||
complexity = GetCoverageValue_branches_complexity(coverage_report_path)
|
||||
sz_complexity =Float.toString(complexity.setScale(2, RoundingMode.HALF_EVEN))
|
||||
badge_complexity.setStatus(sz_complexity)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,9 +58,9 @@ def _exec(cmd: str, root: str | os.PathLike | None = None, raw: bool = False) ->
|
||||
)
|
||||
if re.search("not a git repository", p.stderr):
|
||||
raise gitversionhelper.repository.notAGitRepository()
|
||||
if re.search("fatal:", p.stderr): # pragma: nocover
|
||||
if re.search("fatal:", p.stderr):
|
||||
raise gitversionhelper.unknownGITFatalError(p.stderr)
|
||||
if int(p.returncode) < 0: # pragma: nocover
|
||||
if int(p.returncode) < 0:
|
||||
raise gitversionhelper.unknownGITError(p.stderr)
|
||||
|
||||
if raw:
|
||||
@@ -145,7 +145,7 @@ class gitversionhelper: # pylint: disable=too-few-public-methods
|
||||
def getMessagesSinceTag(cls, tag: str, **kwargs) -> str:
|
||||
"""
|
||||
retrieve a commits message history from repository
|
||||
from LastCommit to the given tag
|
||||
from Latest commit to the given tag
|
||||
Keyword Arguments:
|
||||
merged_output: output one single merged string
|
||||
same_branch(bool): force searching only in the same branch
|
||||
@@ -278,7 +278,7 @@ class gitversionhelper: # pylint: disable=too-few-public-methods
|
||||
@classmethod
|
||||
def getLastTag(cls, **kwargs) -> str | None:
|
||||
"""
|
||||
retrieve the last tag from a repository
|
||||
retrieve the Latest tag from a repository
|
||||
Keyword Arguments:
|
||||
same_branch(bool): force searching only in the same branch
|
||||
Returns:
|
||||
@@ -293,14 +293,14 @@ class gitversionhelper: # pylint: disable=too-few-public-methods
|
||||
|
||||
if len(res) == 0:
|
||||
raise cls.tagNotFound("no tag found in commit history")
|
||||
if len(res) != 1: # pragma: nocover
|
||||
if len(res) != 1:
|
||||
raise cls.moreThanOneTag("multiple tags on same commit is unsupported")
|
||||
return res[0]
|
||||
|
||||
@classmethod
|
||||
def getDistanceFromTag(cls, tag: str = None, **kwargs) -> int:
|
||||
"""
|
||||
retrieve the distance between HEAD and tag in the repository
|
||||
retrieve the distance between Latest commit and tag in the repository
|
||||
Arguments:
|
||||
tag: reference tag, if None the most recent one will be used
|
||||
Keyword Arguments:
|
||||
@@ -520,7 +520,7 @@ class gitversionhelper: # pylint: disable=too-few-public-methods
|
||||
the last version
|
||||
"""
|
||||
if gitversionhelper.repository.isDirty() is not False:
|
||||
raise gitversionhelper.repository.repositoryDirty("The repository is dirty and a current version" " can not be generated.")
|
||||
raise gitversionhelper.repository.repositoryDirty("The repository is dirty and a current version can not be generated.")
|
||||
saved_kwargs = copy(kwargs)
|
||||
if "formated_output" in kwargs:
|
||||
del saved_kwargs["formated_output"]
|
||||
@@ -541,7 +541,7 @@ class gitversionhelper: # pylint: disable=too-few-public-methods
|
||||
Same as getCurrentVersion() with formated_output kwarg activated
|
||||
"""
|
||||
kwargs["formated_output"] = True
|
||||
return cls.getCurrentVersion(kwargs)
|
||||
return cls.getCurrentVersion(**kwargs)
|
||||
|
||||
@classmethod
|
||||
def _parseTag(cls, tag, **kwargs): # pylint: disable=R0914, R0912, R0915
|
||||
@@ -614,7 +614,7 @@ class gitversionhelper: # pylint: disable=too-few-public-methods
|
||||
raise gitversionhelper.version.noValidVersion("no valid version found in tags")
|
||||
|
||||
if pre_count > 0 and post_count > 0:
|
||||
raise cls.PreAndPostVersionUnsupported("can not parse a version with both pre" " and post release number.")
|
||||
raise cls.PreAndPostVersionUnsupported("can not parse a version with both pre and post release number.")
|
||||
return cls.MetaVersion(VersionStd, major, minor, patch, pre_count, post_count, tag)
|
||||
|
||||
@classmethod
|
||||
@@ -686,7 +686,7 @@ class gitversionhelper: # pylint: disable=too-few-public-methods
|
||||
OutputFormat = "{major}.{minor}.{patch}{revpattern}{revcount}"
|
||||
if post_count > 0 and pre_count > 0:
|
||||
raise gitversionhelper.version.PreAndPostVersionUnsupported(
|
||||
"cannot output a version with both pre " "and post release number."
|
||||
"cannot output a version with both pre and post release number."
|
||||
)
|
||||
if VersionStd == "PEP440":
|
||||
if post_count > 0:
|
||||
|
||||
@@ -298,6 +298,8 @@ class Test_gitversionhelper(unittest.TestCase):
|
||||
self.assertEqual(_v.pre_count, 0)
|
||||
self.assertEqual(_v.post_count, 2)
|
||||
self.assertEqual(_v.doFormatVersion(), "2.1.2+post.2")
|
||||
self.assertEqual(_v.doFormatVersion(version_std="SemVer"), "2.1.2+post.2")
|
||||
self.assertEqual(_v.doFormatVersion(version_std="PEP440"), "2.1.2.post2")
|
||||
|
||||
_v = _v.bump(bump_type="patch")
|
||||
self.assertEqual(_v.raw, "2.1.3")
|
||||
@@ -544,6 +546,15 @@ class Test_gitversionhelper(unittest.TestCase):
|
||||
self.assertEqual(_v.minor, 1)
|
||||
self.assertEqual(_v.patch, 0)
|
||||
|
||||
def test_nominal__version___getCurrentFormatedVersion(self):
|
||||
with open("demofile.txt", "w+t") as tmpFile:
|
||||
tmpFile.write("testvalue")
|
||||
os.system("git add .")
|
||||
os.system('git commit -m "first commit"')
|
||||
os.system(f"git tag 0.2.0")
|
||||
|
||||
self.assertEqual(pygitversionhelper.gitversionhelper.version.getCurrentFormatedVersion(), "0.2.0")
|
||||
|
||||
def test_nominal__version___AUTO_bump_commits(self):
|
||||
with open("demofile.txt", "w+t") as tmpFile:
|
||||
tmpFile.write("testvalue")
|
||||
@@ -678,6 +689,12 @@ class Test_gitversionhelper(unittest.TestCase):
|
||||
formated_output=True,
|
||||
),
|
||||
)
|
||||
self.assertEqual(
|
||||
"0.1.1",
|
||||
pygitversionhelper.gitversionhelper.version.getLastVersion(
|
||||
formated_output=True,
|
||||
),
|
||||
)
|
||||
|
||||
def test_nominal__git__emptyrepo(self):
|
||||
_v = pygitversionhelper.gitversionhelper.version.getCurrentVersion()
|
||||
@@ -1253,6 +1270,10 @@ class Test_gitversionhelper(unittest.TestCase):
|
||||
with self.assertRaises(pygitversionhelper.gitversionhelper.commit.commitNotFound):
|
||||
pygitversionhelper.gitversionhelper.commit.getLast(same_branch=True)
|
||||
|
||||
def test_defect__commit_getMessage_notfound(self):
|
||||
with self.assertRaises(pygitversionhelper.gitversionhelper.commit.commitNotFound):
|
||||
pygitversionhelper.gitversionhelper.commit.getMessage("")
|
||||
|
||||
def test_nominal__commit_getFromTag(self):
|
||||
with open("demofile.txt", "w+t") as tmpFile:
|
||||
tmpFile.write("testvalue")
|
||||
@@ -1371,6 +1392,28 @@ class Test_gitversionhelper(unittest.TestCase):
|
||||
res = pygitversionhelper.gitversionhelper.commit.getMessagesSinceTag("0.1.1", merged_output=True)
|
||||
self.assertEqual(os.linesep.join([commit_message4, commit_message3, commit_message2]), res)
|
||||
|
||||
cmd = "git checkout -b dev".split()
|
||||
subprocess.run(cmd, text=True, check=True)
|
||||
|
||||
commit_message5 = "5.1 update this" + os.linesep + "5.1 fix that" + os.linesep + "5.1 test"
|
||||
commit_message5 = commit_message5.replace("\r\n", "\n").replace("\n", "\r\n")
|
||||
with open("demofile.txt", "w+t") as tmpFile:
|
||||
tmpFile.write("testvalue5")
|
||||
os.system("git add .")
|
||||
|
||||
cmd = "git commit -m".split()
|
||||
cmd.append(commit_message5)
|
||||
subprocess.run(cmd, text=True, check=True)
|
||||
|
||||
cmd = "git switch master".split()
|
||||
subprocess.run(cmd, text=True, check=True)
|
||||
|
||||
res = pygitversionhelper.gitversionhelper.commit.getMessagesSinceTag("0.1.1", merged_output=True, same_branch=True)
|
||||
self.assertEqual(os.linesep.join([commit_message4, commit_message3, commit_message2]), res)
|
||||
|
||||
res = pygitversionhelper.gitversionhelper.commit.getMessagesSinceTag("0.1.1", merged_output=True)
|
||||
self.assertEqual(os.linesep.join([commit_message5, commit_message4, commit_message3, commit_message2]), res)
|
||||
|
||||
def tearDown(self):
|
||||
os.chdir("/")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user