From: ZhuoX Li Date: Wed, 22 Oct 2014 10:07:20 +0000 (+0800) Subject: Change release name in prjconf from OBS. X-Git-Tag: 1.0~52 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f304eeb1b2154c7e2cad203cfb3d5315442b4f0f;p=services%2Fjenkins-scripts.git Change release name in prjconf from OBS. Set release tag in prjconf so that the rpm version in target project will be greater than those in the base project. To solve the issue 'package version in prerelease project must be higher than in target project' Change-Id: Icdc2cc40befcd370b61bc6df3c33ace9aebfdb1c Fixes: #1846 --- diff --git a/common/buildservice.py b/common/buildservice.py index a6525ef..9485041 100644 --- a/common/buildservice.py +++ b/common/buildservice.py @@ -339,6 +339,14 @@ class BuildService(OSC): """ return ''.join(core.show_project_conf(self.apiurl, project)) + def set_project_config(self, project, config): + """ + Set building config of project + """ + url = core.make_meta_url("prjconf", core.quote_plus(project), + self.apiurl, False) + self.core_http(core.http_PUT, url, data=''.join(config)) + def get_package_meta(self, project, package): """ get_package_meta(project, package) -> string diff --git a/job_submit.py b/job_submit.py index 7e8b007..4b49e64 100755 --- a/job_submit.py +++ b/job_submit.py @@ -9,6 +9,8 @@ import os import sys import json import base64 +import datetime +import re from xml.sax.saxutils import escape from gitbuildsys.errors import ObsError @@ -50,6 +52,27 @@ def git_obs_map(gerrit_prj, gerrit_branch): print 'Found git-obs-mapping: %s -> %s' % (gerrit_prj, obs_prjs) return obs_prjs +def change_release_name(build, project, git_tag): + """ + Change release name from project config in OBS + Add the datetime into release name. + Eg: 'Release: .' ----> 'Release: 20141010..' + """ + # get project config + config = build.get_project_config(project) + release_name = 'Release: %s' % (git_tag.split('/')[-1]) + res = re.findall(r'^Release: ?\S+$', config, flags=re.MULTILINE) + if res: + note = '#Insert time from submission into release name\n' + release_name = '%s.%s' % (release_name, + res[0].split('Release:')[1].strip()) + config = config.replace(res[0], '%s%s' % (note, release_name), 1) + else: + note = '#Add release name into prjconf\n' + config = note + '%s\n' % release_name + config + # set project config + build.set_project_config(project, config) + def create_project(git_url, git_project, git_tag, git_revision, build, obs_target_prj, obs_project, submitter, package): """Create prerelease OBS project and upload sources for the build.""" @@ -80,6 +103,8 @@ def create_project(git_url, git_project, git_tag, git_revision, build, description=json.dumps(info)) except ObsError, error: LocalError("Unable to create project %s: %s" % (obs_project, error)) + # change release name of project config in OBS + change_release_name(build, obs_project, git_tag) try: upload_obs_service(git_url, git_project, git_tag,