QuasarAppCI/BuildBotLib/releaser.py
2021-10-25 18:39:24 +03:00

75 lines
2.1 KiB
Python

# This Python file uses the following encoding: utf-8
from BuildBotLib.basemodule import BaseModule
from buildbot.plugins import util, steps
from BuildBotLib.make import Make
class Releaser(Make):
def __init__(self):
Make.__init__(self, BaseModule.P_Linux)
def getFactory(self):
factory = BaseModule.getFactory(self)
@util.renderer
def getProdName(props):
return str(props.getProperty('prodName'))
@util.renderer
def getUrl(props):
baseUrl = self.destDirUrl(props)
prodName = str(props.getProperty('prodName'))
return baseUrl + '/' + prodName
factory.addStep(
steps.Git(
repourl=util.Interpolate('%(prop:repository)s'),
branch=util.Interpolate('%(prop:branch)s'),
mode='full',
method='fresh',
clobberOnFailure=True,
submodules=False,
retryFetch=True,
name='git operations',
description='operations of git like pull clone fetch',
)
)
factory.addStep(
self.generateStep(["wget", getUrl],
self.platform,
'get last build ',
lambda step: True)
)
factory.addStep(
self.generateStep(['dpkg', '-i', getProdName],
self.platform,
'Install new version of server',
lambda step: True)
)
factory.addStep(
self.generateStep("rm * -rdf",
self.platform,
'Clean ',
lambda step: True)
)
return factory
def getPropertyes(self):
base = BaseModule.getPropertyes(self)
return base + [
util.StringParameter(
name='prodName',
label='Name of the production server file. (by default prod.deb)',
default='prod.deb'
),
]