QuasarAppCI/BuildBotLib/releaser.py

75 lines
2.1 KiB
Python
Raw Normal View History

2021-10-25 12:43:57 +03:00
# This Python file uses the following encoding: utf-8
from BuildBotLib.basemodule import BaseModule
from buildbot.plugins import util, steps
2021-10-25 12:49:20 +03:00
from BuildBotLib.make import Make
2021-10-25 12:43:57 +03:00
class Releaser(Make):
def __init__(self):
Make.__init__(self, BaseModule.P_Linux)
def getFactory(self):
2021-10-25 12:51:03 +03:00
factory = BaseModule.getFactory(self)
2021-10-25 12:43:57 +03:00
@util.renderer
def getProdName(props):
return str(props.getProperty('prodName'))
@util.renderer
2021-10-25 12:58:34 +03:00
def getUrl(props):
baseUrl = self.destDirUrl(props)
2021-10-25 12:43:57 +03:00
prodName = str(props.getProperty('prodName'))
2021-10-25 18:39:24 +03:00
return baseUrl + '/' + prodName
2021-10-25 12:43:57 +03:00
factory.addStep(
2021-10-25 18:37:22 +03:00
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(
2021-10-25 12:43:57 +03:00
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):
2021-10-25 12:51:03 +03:00
base = BaseModule.getPropertyes(self)
2021-10-25 12:43:57 +03:00
return base + [
2021-10-25 12:53:10 +03:00
util.StringParameter(
2021-10-25 12:43:57 +03:00
name='prodName',
label='Name of the production server file. (by default prod.deb)',
default='prod.deb'
),
]