QuasarAppCI/BuildBotLib/qifRepogen.py
2020-02-05 17:52:02 +03:00

90 lines
2.5 KiB
Python

# This Python file uses the following encoding: utf-8
from BuildBotLib.basemodule import BaseModule
from buildbot.plugins import util, steps
class QIFRepogen (BaseModule):
def __init__(self):
BaseModule.__init__(self, BaseModule.P_Linux)
self.repogen = "repogen"
def getFactory(self):
factory = super().getFactory()
def generateRepogenCmd(props):
repoLocation = str(props.getProperty('repoLocation')) + "/"
projectName = str(props.getProperty('projectName'))
if (len(projectName) <= 0):
raise Exception('Project undefined')
repoLocation += projectName + "/"
repoLocation += str(props.getProperty('platform'))
tempPackage = str(props.getProperty('tempPackage'))
cmd = [self.repogen,
"--update-new-components",
"-p",
tempPackage,
repoLocation
]
return cmd
factory.addStep(
steps.ShellCommand(
command=self.getWraper(generateRepogenCmd),
haltOnFailure=True,
name='Generate repository',
description='Generate repository',
)
)
def generateRemoveCmd(props):
tempPackage = props.getProperty('tempPackage')
cmd = ["rm",
"-rdf",
tempPackage
]
return cmd
factory.addStep(
steps.ShellCommand(
command=self.getWraper(generateRemoveCmd),
haltOnFailure=True,
name='Remove old Data',
description='Remove old Data',
)
)
return factory
def getPropertyes(self):
return [
util.StringParameter(
name='tempPackage',
label='Folder with temp value for packing',
default=""
),
util.StringParameter(
name='platform',
label='target platform (linux, windows)',
default=BaseModule.P_Linux
),
util.StringParameter(
name='projectName',
label='name of buildet project',
default=''
),
util.StringParameter(
name='repoLocation',
label='repository location',
default=self.home + "/Repo/"
),
]