コード例 #1
0
ファイル: actions.py プロジェクト: FrankLiu/scminone
def check_branch(view, target=clearmake):
	smartbuilddir="/mot/proj/wibb_bts/daily/tmpsmartbuild/{view}".format(view=view)
	os.umask(0002)
	if not os.path.exists(smartbuilddir): os.makedirs(smartbuilddir, 0775)
	os.utime(smartbuilddir+"/prev_cs_"+target,None)
	os.utime(smartbuilddir+"/prev_cr_"+target,None)
	
	# Compare config spec. If identical, exit 0; else non-zero
	prevcs=smartbuilddir+"/prev_cs_"+target
	currcs=smartbuilddir+"/curr_cs_"+target
	clearcase.ct("catcs -tag {view} > {currcs}".format(view=view,currcs=currcs))
	csdiff = filecmp.cmp(prevcs,currcs)
	
	# Compare CR list. If identical, exit 0; else non-zero
	prevcr=smartbuilddir+"/prev_cr_"+target
	currcr=smartbuilddir+"/curr_cr_"+target
	command.run(". {scstart} wibb_bts".format(scstart=bmc.config.get("scstart")))
	clearcase.ctInView("{mergestat} -a|grep -E '.*yes.*yes.*|.*no.*yes.*' > {currcr}".format(mergestat=bmc.config.get("mergestat"),currcr=currcr))
	crdiff = filecmp.cmp(prevcr,currcr)

	# Update the log entry
	os.rename(currcs,prevcs)
	os.rename(currcr,prevcr)
	
	# If both config spec and merged CR log are unchanged, then exit 0; else, exit 1.
	if not (csfiff and crdiff):
		logger.warn("Nightly build under view {view} for {target} was not kicked off because there's no change to the code or config spec.".format(view=view, target=target))
		subject = "Nightly build under view {view} for {target} was not kicked off because there's no change to the code or config spec.".format(view=view, target=target)
		message = subject
		utils.sendmail(bmc.config.get("MAILFROM"), mailto, subject, message)
		raise Exception(message)
コード例 #2
0
ファイル: steps.py プロジェクト: FrankLiu/scminone
def sUpdateNBVer(ins):
	currVer = clearcase.getNextLabel(ins.getNBView(),ins.getWuceProduct())
	nextBlVer = clearcase.getNextBaselineLabel(ins.getNBView(),ins.getWuceProduct())
	l = clearcase.parseLabel(nextBlVer)
	if len(l) < 8:
		raise Exception("Invalid baseline label {label}".format(label=nextBlVer))
	clearcase.ctInView(ins.getNBView(), "cd {vt}/bld/wuce/ver; {ct} co -nc sys prod sysrel bld iter prodver bldrev extra".format(vt=ins.getVobTag(),ct=bmc.config.get('cleartool')))
	clearcase.ctInView(ins.getNBView(), "cd {vt}/bld/wuce/ver; echo {sys}>sys; echo {prod}>prod; echo {sysrel}>sysrel; echo {bld}>bld; echo {iter}>iter; echo {prodver}>prodver; echo {bldrev}>bldrev; echo {extra}>extra;".format(vt=ins.getVobTag(), 
			sys=l[0],prod=l[1],sysrel=l[2],bld=l[3],iter=l[4],prodver=l[5],bldrev=l[6],extra=l[7]))
	clearcase.ctInView(ins.getNBView(), "cd {vt}/bld/wuce/ver; {ct} ci -nc -iden sys prod sysrel bld iter prodver bldrev extra".format(vt=ins.getVobTag(),ct=bmc.config.get('cleartool')))	
コード例 #3
0
ファイル: steps.py プロジェクト: FrankLiu/scminone
def sIncreNBVer(ins):
	"""
	Increase nightly build version,  e.g. if current version is 02, then increase to 03
	"""
	currVer = clearcase.getNextLabel(ins.getNBView(),ins.getWuceProduct())
	l = clearcase.parseLabel(currVer)
	(incfile,ver) = ('bldrev',int(l[6]))
	if float(l[2]) >= 5.0: #mainline release greater than 5.0
		(incfile,ver) = ('prodver',int(l[5]))
	clearcase.ctInView(ins.getNBView(), "cd {vt}/bld/wuce/ver; {ct} co -nc {incfile}".format(vt=ins.getVobTag(),ct=bmc.config.get('cleartool'),incfile=incfile))
	clearcase.ctInView(ins.getNBView(), "cd {vt}/bld/wuce/ver; echo {ver}>{incfile}".format(vt=ins.getVobTag(),ct=bmc.config.get('cleartool'),ver=ver,incfile=incfile))
	clearcase.ctInView(ins.getNBView(), "cd {vt}/bld/wuce/ver; {ct} ci -nc -iden {incfile}".format(vt=ins.getVobTag(),ct=bmc.config.get('cleartool'),incfile=incfile))
コード例 #4
0
ファイル: steps.py プロジェクト: FrankLiu/scminone
def sCloseScmBl():
	targetScmtBl = clearcase.getScmBaselineLabel(ins.getNBView(),ins.getWuceProduct())
	clearcase.ctInView(bmc.config.get('commonView'), "cd {vt}; {cqtool} closebl {targetScmtBl}".format(vt=ins.getVobTag(),cqtool=bmc.config.get('cqtool'),targetScmtBl=targetScmtBl))
コード例 #5
0
ファイル: steps.py プロジェクト: FrankLiu/scminone
def sLinkScmBlC():
	targetIntBl = clearcase.getBaselineLabel(ins.getNBView(),ins.getWuceProduct())
	targetScmBl = clearcase.getScmBaselineLabel(ins.getNBView(),ins.getWuceProduct())
	clearcase.ctInView(bmc.config.get('commonView'), "cd {vt}; {cqtool} linkbl {targetScmBl} -a -child {targetIntBl}".format(vt=ins.getVobTag(),cqtool=bmc.config.get('cqtool'),targetIntBl=targetIntBl, targetScmBl=targetScmBl))
コード例 #6
0
ファイル: steps.py プロジェクト: FrankLiu/scminone
def sLinkScmBlP():
	targetScmBl = clearcase.getScmBaselineLabel(ins.getNBView(),ins.getWuceProduct())
	preScmBl =  clearcase.getPreviousScmBaselineLabel(ins.getNBView(),ins.getWuceProduct())
	clearcase.ctInView(bmc.config.get('commonView'), "cd {vt}; {cqtool} linkbl {targetScmBl} -a -predecessor {preScmBl}".format(vt=ins.getVobTag(),cqtool=bmc.config.get('cqtool'),targetScmBl=targetScmBl, preScmBl=preScmBl))