aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMagnus Granberg <zorry@gentoo.org>2021-03-01 00:25:37 +0100
committerMagnus Granberg <zorry@gentoo.org>2021-03-01 00:25:37 +0100
commitf60d63024794752620e12f445e13d6a317030de3 (patch)
tree33489cc8d4ea692da45becf2727a45b028fda8ca
parentDon't use binary or build some packages (diff)
downloadtinderbox-cluster-f60d63024794752620e12f445e13d6a317030de3.tar.gz
tinderbox-cluster-f60d63024794752620e12f445e13d6a317030de3.tar.bz2
tinderbox-cluster-f60d63024794752620e12f445e13d6a317030de3.zip
Add git log commit id to version data
Signed-off-by: Magnus Granberg <zorry@gentoo.org>
-rw-r--r--buildbot_gentoo_ci/db/model.py1
-rw-r--r--buildbot_gentoo_ci/db/versions.py6
-rw-r--r--buildbot_gentoo_ci/steps/version.py35
3 files changed, 39 insertions, 3 deletions
diff --git a/buildbot_gentoo_ci/db/model.py b/buildbot_gentoo_ci/db/model.py
index b91f158..aa4eabc 100644
--- a/buildbot_gentoo_ci/db/model.py
+++ b/buildbot_gentoo_ci/db/model.py
@@ -240,6 +240,7 @@ class Model(base.DBConnectorComponent):
sa.ForeignKey('packages.uuid', ondelete='CASCADE'),
nullable=False),
sa.Column('file_hash', sa.String(255), nullable=False),
+ sa.Column('commit_id', sa.String(255), nullable=False),
sa.Column('deleted', sa.Boolean, default=False),
sa.Column('deleted_at', sa.DateTime, nullable=True),
)
diff --git a/buildbot_gentoo_ci/db/versions.py b/buildbot_gentoo_ci/db/versions.py
index 25f2061..df9b4d3 100644
--- a/buildbot_gentoo_ci/db/versions.py
+++ b/buildbot_gentoo_ci/db/versions.py
@@ -56,14 +56,15 @@ class VersionsConnectorComponent(base.DBConnectorComponent):
return res
@defer.inlineCallbacks
- def addVersion(self, name, package_uuid, file_hash):
+ def addVersion(self, name, package_uuid, file_hash, commit_id):
def thd(conn, no_recurse=False):
try:
tbl = self.db.model.versions
q = tbl.insert()
r = conn.execute(q, dict(name=name,
package_uuid=package_uuid,
- file_hash=file_hash))
+ file_hash=file_hash,
+ commit_id=commit_id))
except (sa.exc.IntegrityError, sa.exc.ProgrammingError):
uuid = None
else:
@@ -107,6 +108,7 @@ class VersionsConnectorComponent(base.DBConnectorComponent):
name=row.name,
package_uuid=row.package_uuid,
file_hash=row.file_hash,
+ commit_id=row.commit_id,
deleted=row.deleted,
deleted_at=row.deleted_at
)
diff --git a/buildbot_gentoo_ci/steps/version.py b/buildbot_gentoo_ci/steps/version.py
index 5430e6e..d47a253 100644
--- a/buildbot_gentoo_ci/steps/version.py
+++ b/buildbot_gentoo_ci/steps/version.py
@@ -3,6 +3,7 @@
import re
import os
+import git
from portage.xml.metadata import MetaDataXML
from portage.checksum import perform_checksum
@@ -61,10 +62,12 @@ class AddVersion(BuildStep):
self.version_data['name'] = self.getProperty("version")
self.version_data['package_uuid'] = self.getProperty("package_data")['uuid']
self.version_data['file_hash'] = self.getProperty("ebuild_file_hash")
+ self.version_data['commit_id'] = self.getProperty("commit_id")
self.version_data['uuid'] = yield self.gentooci.db.versions.addVersion(
self.version_data['name'],
self.version_data['package_uuid'],
- self.version_data['file_hash']
+ self.version_data['file_hash'],
+ self.version_data['commit_id']
)
print(self.version_data)
self.setProperty("version_data", self.version_data, 'version_data')
@@ -98,6 +101,33 @@ class GetAuxMetadata(BuildStep):
yield portdbapi.portdbapi_instances.remove(self.myportdb)
return SUCCESS
+class GetCommitdata(BuildStep):
+
+ name = 'GetCommitdata'
+ description = 'Running'
+ descriptionDone = 'Ran'
+ descriptionSuffix = None
+ haltOnFailure = True
+ flunkOnFailure = True
+
+ def __init__(self, **kwargs):
+ super().__init__(**kwargs)
+
+ @defer.inlineCallbacks
+ def run(self):
+ #FIXME: Could be a better way to get the log
+ git_log_ebuild = ''
+ g = git.Git(self.getProperty("repository_path"))
+ index = 1
+ git_log_dict = {}
+ git_log = yield g.log('-n 1', self.getProperty("ebuild_file"))
+ print(git_log)
+ for line in git_log.splitlines():
+ git_log_dict[index] = line
+ index = index + 1
+ self.setProperty('commit_id', re.sub('commit ', '', git_log_dict[1]), 'commit_id')
+ return SUCCESS
+
class AddVersionKeyword(BuildStep):
name = 'AddVersionKeyword'
@@ -178,6 +208,7 @@ class CheckPathHash(BuildStep):
self.ebuild_file_hash = None
self.setProperty('ebuild_file', self.ebuild_file, 'ebuild_file')
self.setProperty('ebuild_file_hash', self.ebuild_file_hash, 'ebuild_file_hash')
+ self.setProperty('repository_path', self.repository_path, 'repository_path')
return SUCCESS
class TriggerBuildCheck(BuildStep):
@@ -248,6 +279,7 @@ class CheckV(BuildStep):
addStepVData.append(DeleteOldVersion())
if self.getProperty("ebuild_file") is not None and self.getProperty("old_version_data") is not None:
if self.getProperty("ebuild_file_hash") != self.getProperty("old_version_data")['file_hash']:
+ addStepVData.append(GetCommitdata())
addStepVData.append(AddVersion())
addStepVData.append(GetAuxMetadata())
addStepVData.append(AddVersionKeyword())
@@ -256,6 +288,7 @@ class CheckV(BuildStep):
else:
return SUCCESS
if self.getProperty("ebuild_file") is not None and self.getProperty("old_version_data") is None:
+ addStepVData.append(GetCommitdata())
addStepVData.append(AddVersion())
addStepVData.append(GetAuxMetadata())
addStepVData.append(AddVersionKeyword())