PR#674: store git commit hash to build.source
Merges #674 https://pagure.io/koji/pull-request/674 Fixes: #550 https://pagure.io/koji/issue/550 Have koji store the git hash
This commit is contained in:
commit
cedd6eef7f
2 changed files with 29 additions and 0 deletions
|
|
@ -868,6 +868,10 @@ class BuildTask(BaseTaskHandler):
|
|||
h = self.readSRPMHeader(srpm)
|
||||
data = koji.get_header_fields(h,['name','version','release','epoch'])
|
||||
data['task_id'] = self.id
|
||||
if getattr(self, 'source', False):
|
||||
data['source'] = self.source['source']
|
||||
data['extra'] = {'source': {'original_url': self.source['url']}}
|
||||
|
||||
extra_arches = None
|
||||
self.logger.info("Reading package config for %(name)s" % data)
|
||||
pkg_cfg = self.session.getPackageConfig(dest_tag,data['name'],event=self.event_id)
|
||||
|
|
@ -933,6 +937,10 @@ class BuildTask(BaseTaskHandler):
|
|||
parent=self.id)
|
||||
# wait for subtask to finish
|
||||
result = self.wait(task_id)[task_id]
|
||||
if 'source' in result:
|
||||
self.source = result['source']
|
||||
else:
|
||||
self.logger.warning('subtask did not provide source data')
|
||||
srpm = result['srpm']
|
||||
return srpm
|
||||
|
||||
|
|
@ -4559,12 +4567,14 @@ class BuildSRPMFromSCMTask(BaseBuildTask):
|
|||
brootid = broot.id
|
||||
log_files = glob.glob('%s/*.log' % broot.resultdir())
|
||||
|
||||
source = scm.get_source()
|
||||
broot.expire()
|
||||
|
||||
return {'srpm': "%s/%s" % (uploadpath, srpm_name),
|
||||
'logs': ["%s/%s" % (uploadpath, os.path.basename(f))
|
||||
for f in log_files],
|
||||
'brootid': brootid,
|
||||
'source': source,
|
||||
}
|
||||
|
||||
class TagNotificationTask(BaseTaskHandler):
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ import urlparse
|
|||
from fnmatch import fnmatch
|
||||
import base64
|
||||
import time
|
||||
import subprocess
|
||||
import sys
|
||||
import traceback
|
||||
import errno
|
||||
|
|
@ -501,8 +502,26 @@ class SCM(object):
|
|||
rel_path = '../' * len(path_comps.split('/'))
|
||||
os.symlink(rel_path + 'common', '%s/../common' % sourcedir)
|
||||
|
||||
self.sourcedir = sourcedir
|
||||
return sourcedir
|
||||
|
||||
def get_source(self):
|
||||
r = {
|
||||
'url': self.url,
|
||||
'source': '',
|
||||
}
|
||||
if self.scmtype.startswith('GIT'):
|
||||
cmd = ['git', 'rev-parse', 'HEAD']
|
||||
fragment = subprocess.check_output(cmd, cwd=self.sourcedir).strip()
|
||||
scheme = self.scheme[:-3]
|
||||
netloc = self.host
|
||||
path = self.repository
|
||||
query = self.module
|
||||
r['source'] = urlparse.urlunsplit([scheme, netloc, path, query, fragment])
|
||||
else:
|
||||
# just use the same url
|
||||
r['source'] = self.url
|
||||
return r
|
||||
## END kojikamid dup
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue