QuasarAppCI/BuildBotLib/qifRepogen.py

113 lines
3.1 KiB
Python
Raw Normal View History

2020-02-03 14:48:36 +03:00
# 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):
2020-02-05 14:32:44 +03:00
BaseModule.__init__(self, BaseModule.P_Linux)
2020-02-03 14:48:36 +03:00
self.repogen = "repogen"
def getFactory(self):
factory = super().getFactory()
2020-04-03 20:54:05 +03:00
def getRepoLocation(props):
2020-02-05 17:52:02 +03:00
repoLocation = str(props.getProperty('repoLocation')) + "/"
projectName = str(props.getProperty('projectName'))
2020-02-05 14:53:02 +03:00
if (len(projectName) <= 0):
raise Exception('Project undefined')
repoLocation += projectName + "/"
2020-04-03 20:54:05 +03:00
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):
2020-04-03 22:06:08 +03:00
repoLocation = getRepoLocation(props)
2020-02-05 17:52:02 +03:00
tempPackage = str(props.getProperty('tempPackage'))
2020-02-03 14:48:36 +03:00
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',
2020-02-05 14:53:02 +03:00
label='target platform (linux, windows)',
2020-02-03 14:48:36 +03:00
default=BaseModule.P_Linux
),
2020-02-05 14:53:02 +03:00
util.StringParameter(
name='projectName',
label='name of buildet project',
default=''
),
2020-02-03 14:48:36 +03:00
util.StringParameter(
name='repoLocation',
label='repository location',
2021-01-10 12:15:46 +03:00
default=self.defaultLocationOfQIFRepository()
2020-02-03 14:48:36 +03:00
),
]