mirror of
https://github.com/QuasarApp/QuasarAppCI.git
synced 2025-04-26 22:04:32 +00:00
113 lines
3.1 KiB
Python
113 lines
3.1 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 getRepoLocation(props):
|
|
repoLocation = str(props.getProperty('repoLocation')) + "/"
|
|
projectName = str(props.getProperty('projectName'))
|
|
|
|
if (len(projectName) <= 0):
|
|
raise Exception('Project undefined')
|
|
|
|
repoLocation += projectName + "/"
|
|
return repoLocation + str(props.getProperty('platform'))
|
|
|
|
def generateChmodCmd(props):
|
|
tempPackage = str(props.getProperty('tempPackage'))
|
|
|
|
cmd = ["chmod",
|
|
"775",
|
|
"-R",
|
|
tempPackage
|
|
]
|
|
|
|
return cmd
|
|
|
|
factory.addStep(
|
|
steps.ShellCommand(
|
|
command=self.getWraper(generateChmodCmd),
|
|
haltOnFailure=True,
|
|
name='chmod files',
|
|
description='set rights for files',
|
|
)
|
|
)
|
|
|
|
def generateRepogenCmd(props):
|
|
repoLocation = getRepoLocation(props)
|
|
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.defaultLocationOfQIFRepository()
|
|
),
|
|
]
|