Enable git-buildpackage to export of SR package 77/214877/2
authorYonghee Han <onstudy@samsung.com>
Fri, 27 Sep 2019 08:23:59 +0000 (17:23 +0900)
committerYonghee Han <onstudy@samsung.com>
Fri, 27 Sep 2019 08:53:21 +0000 (17:53 +0900)
Applies only to devbase project.
create upload_obs_service_gbp function for the git-buildpackage
Trigger next TEST-TRIGGER-INFO-UPDATE when only devbase project

Change-Id: Ied1a62eba9d133831550efbf515f08d8c96273d8

common/prerelease.py
common/upload_service.py
common/workflow.py
job_pre_release_obs.py

index 4e101cf..f81bedd 100644 (file)
@@ -75,3 +75,9 @@ def get_tagname_from_prerelease_name(prerelease_project):
 
     return (prerelease_project.split(project)[-1].replace(":","/")[1:])
 
+def is_devbase_project(project_name):
+    """
+    Return true if the project name belong to prerelease devbase namespace
+    """
+    return project_name.startswith("home:prerelease:Tizen:Devbase:")
+
index 9f2ad6e..d1405b5 100644 (file)
@@ -58,6 +58,37 @@ def upload_obs_service(git_url, git_project, git_tag,
         raise UploadError("Unable to upload _service to %s: %s" % \
                 (obs_project, error))
 
+# for devbase project
+def upload_obs_service_gbp(git_url, git_project, git_tag,
+        git_revision, obs_project, build, package):
+    """UPload _service file to OBS.Create package if doesn't exist.To replace
+    make package in local"""
+    if not build.exists(obs_project, package):
+        try:
+            build.create_package(obs_project, package)
+        except ObsError, error:
+            raise UploadError("Unable to create package %s/%s :%s" % \
+                    (obs_project, package, error))
+    # Upload _service file to the project for gbs source service
+    print 'Upload service file'
+    commit_message = 'uploaded by prerelease job to build %s/%s(%s)' % \
+            (git_project, git_tag, git_revision)
+    content = "<services><service name='git-buildpackage'>" \
+            "<param name='revision'>%s</param>" \
+            "<param name='url'>%s</param>" \
+            "<param name='git-meta'>_git-meta</param>" \
+            "</service></services>" % \
+                (git_revision, os.path.join(git_url, git_project))
+    fname = '_service'
+    with open(fname, 'w') as servicef:
+        servicef.write(content)
+    try:
+        build.commit_files(obs_project, package,
+                [(fname, True)], commit_message)
+    except ObsError, error:
+        raise UploadError("Unable to upload _service to %s: %s" % \
+                (obs_project, error))
+
 def upload_obs_files(git_project, git_tag, git_revision, \
                      obs_project, build, package, files):
     """UPload _service file to OBS.Create package if doesn't exist.To replace
index cad6070..68bb770 100644 (file)
@@ -35,8 +35,8 @@ from gitbuildsys.errors import ObsError
 
 from common import utils
 from common.mapping import git_obs_map, git_virtual_branch_map
-from common.upload_service import upload_obs_service, UploadError
-from common.prerelease import get_info_from_prerelease_name
+from common.upload_service import upload_obs_service, upload_obs_service_gbp, UploadError
+from common.prerelease import get_info_from_prerelease_name, is_devbase_project
 from common.git import Git, clone_gitproject
 from common.gerrit import GerritEnv, GerritError
 from common import runner
@@ -651,8 +651,13 @@ def create_project(build, obs_project, submit_list, mode=MODE_NORMAL):
                 continue
             print '<< %s >>' % package[idx]
             sys.stdout.flush()
-            upload_obs_service(git_url, git_project[idx], git_tag,
-                               git_revision[idx], obs_project, build, package[idx])
+            # if obs_project is devbase project then use the gbp to export.
+            if is_devbase_project(obs_project):
+                upload_obs_service_gbp(git_url, git_project[idx], git_tag,
+                                       git_revision[idx], obs_project, build, package[idx])
+            else:
+                upload_obs_service(git_url, git_project[idx], git_tag,
+                                   git_revision[idx], obs_project, build, package[idx])
     except UploadError, err:
         raise LocalError(err)
 
index 0d69cd1..cd294ea 100755 (executable)
@@ -33,7 +33,7 @@ from common.repomaker import find_files, RepoMaker, RepoMakerError
 from common.buildtrigger import trigger_info, trigger_next, get_pending_builds_with_parameter
 from common.buildservice import BuildService
 from common.backenddb import BackendDB
-from common.prerelease import get_info_from_prerelease_name
+from common.prerelease import get_info_from_prerelease_name, is_devbase_project
 from common.snapshot import Snapshot, SnapshotError
 from common.iris_rest_client import IrisRestClient
 
@@ -678,6 +678,10 @@ def main(action):
         if bBuildFail == True:
             # NOTIFY BUILDSTATUS
             trigger_next("NOTIFY-BUILDSTATUS", info)
+        else:
+            # Only devbase project
+            if is_devbase_project(project):
+                trigger_next("TEST-TRIGGER-INFO-UPDATE", info)
 
     elif action == 'cleanup':
         # request(SR) end of life, this founction should be called to