print 'repo init cmd: %s' %cmd
ret = subprocess.call(cmd, stdout=sys.stdout,stderr=sys.stderr, shell=True)
if ret != 0:
- raise LocalError('repo int failed')
+ print 'repo int failed!!!!!'
+ repo_init_sync_status = 'F'
+ status_reason = 'repo init failed'
+ return (repo_init_sync_status, status_reason)
self.__manifest_replace(repo)
cmd = 'repo sync'
ret = subprocess.call(cmd, stdout=sys.stdout,stderr=sys.stderr, shell=True)
if ret != 0:
- raise LocalError('repo sync failed')
+ print 'repo sync failed!!!!!'
+ repo_init_sync_status = 'F'
+ status_reason = 'repo sync failed'
+ return (repo_init_sync_status, status_reason)
self.__update_gbs_conf_for_one_profile_repo(repo)
+ repo_init_sync_status = 'S'
+ status_reason = 'Succeeded'
+ return (repo_init_sync_status, status_reason)
+
def __find_binary_list_arg(self,repo):
""" Find argument of --binary-list : which is same as to find spec file name in build_pkg_list"""
subprocess.call(cmd, stdout=sys.stdout,stderr=sys.stderr, shell=True)
+ (gbs_build_status,gbs_build_status_reason) = self._get_gbs_build_result_status(repo,arch)
+ print "GBS Fullbuild result: %s" %gbs_build_status_reason
+
+ return (gbs_build_status,gbs_build_status_reason)
+
def do_gbs_build(self):
print '----start do_gbs_build-----------------------------------'
print 'OBS Project: %s, repository: %s, architecture: %s gbs build start'\
%(self.obs_prj,repo,arch)
self._do_repo_arch_gbs_fullbuild(repo,arch)
- if self._get_gbs_build_result_status(repo,arch) == 'Succeeded':
- print 'GBS fullbuild succeeded for repo:%s , arch:%s' %(repo,arch)
- else:
- raise LocalError('GBS fullbuild failed')
def copy_build_results_to_dl_server(self,repository):
trigger_next("BUILD-MONITOR-2-%s-%s-%s-trg_%s" % (bm_stage, bm_repo, bm_arch, bm_trg_count), bm_data)
+def update_db_for_gbsbuild_target(repository,architecture,bm_start_datetime,\
+ gbs_build_status,gbsbuild_tag):
+ gbs_update_data = {"tag" : gbsbuild_tag,
+ "mode" : "build_finished",
+ "reason" : {"repo":repository,"arch":architecture,"status":gbs_build_status}}
+ gbs_update_dashboard(gbs_update_data,via='direct_call')
+
+ bm_end_datetime = datetime.datetime.now()
+ bm_stage = 'GBSDBBuild_Target'
+ bm_data = {"bm_stage": bm_stage,
+ "repository": repository,
+ "architecture": architecture,
+ "bm_start_datetime": str(bm_start_datetime),
+ "bm_end_datetime" : str(bm_end_datetime),
+ "gbs_build_status" : gbs_build_status,
+ "gbsbuild_tag" : gbsbuild_tag
+ }
+ trigger_next("BUILD-MONITOR-1-%s" % bm_stage, bm_data)
+
+
def main():
"""script entry point"""
print 'OBS Project: %s, repository: %s, architecture: %s gbs build start'\
%(gbsbuild_dic['obs_prj'],repository,architecture)
- gbsbuild_sub._do_repo_init_sync(repository)
- gbsbuild_sub._do_repo_arch_gbs_fullbuild(repository,architecture)
- (gbs_build_status,gbs_build_status_reason) = gbsbuild_sub._get_gbs_build_result_status(repository,architecture)
-
+ (repo_init_sync_status,repo_init_sync_status_reason) = gbsbuild_sub._do_repo_init_sync(repository)
+ # if repo init or repo sync failed, do not perform gbs build, and just update dashboard
+ if repo_init_sync_status == 'F':
+ if buildmonitor_enabled:
+ update_db_for_gbsbuild_target(repository,architecture,bm_start_datetime,\
+ repo_init_sync_status,gbsbuild_dic['gbsbuild_tag'])
+ return 0
+
+ (gbs_build_status,gbs_build_status_reason) = gbsbuild_sub._do_repo_arch_gbs_fullbuild(repository,architecture)
+
live_out_dir=gbsbuild_sub.copy_build_results_to_dl_server(repository)
os.chdir(original_dir)
if buildmonitor_enabled:
- gbs_update_data = {"tag" : gbsbuild_dic['gbsbuild_tag'],
- "mode" : "build_finished",
- "reason" : {"repo":repository,"arch":architecture,"status":gbs_build_status}}
- gbs_update_dashboard(gbs_update_data,via='direct_call')
-
- bm_end_datetime = datetime.datetime.now()
- bm_stage = 'GBSDBBuild_Target'
- bm_data = {"bm_stage": bm_stage,
- "repository": repository,
- "architecture": architecture,
- "bm_start_datetime": str(bm_start_datetime),
- "bm_end_datetime" : str(bm_end_datetime),
- "gbs_build_status" : gbs_build_status,
- "gbsbuild_tag" : gbsbuild_dic['gbsbuild_tag']
- }
- trigger_next("BUILD-MONITOR-1-%s" % bm_stage, bm_data)
+ update_db_for_gbsbuild_target(repository,architecture,bm_start_datetime,\
+ gbs_build_status,gbsbuild_dic['gbsbuild_tag'])
bm_pkg_info=gbsbuild_sub.get_rpm_info_from_gbs_build_log(live_out_dir,repository,architecture)
print "bm_pkg_info: %s" %bm_pkg_info