QuasarAppCI/BuildBotLib/buildBotShedulers.py

109 lines
3.4 KiB
Python
Raw Normal View History

2019-07-22 10:20:59 +03:00
# This Python file uses the following encoding: utf-8
2019-12-26 13:48:06 +03:00
from BuildBotLib.buildBotModule import BuildBotModule
2020-06-19 13:43:02 +03:00
from buildbot.plugins import schedulers
2021-10-24 16:06:24 +03:00
from buildbot.plugins import util
2019-07-22 10:20:59 +03:00
2019-12-26 13:48:06 +03:00
class BuildBotShedulers(BuildBotModule):
2019-07-22 10:20:59 +03:00
codebases = {}
shedulers = []
2019-12-26 13:48:06 +03:00
2020-06-19 11:10:42 +03:00
def __init__(self, masterConf):
BuildBotModule.__init__(self, masterConf)
2019-07-22 10:20:59 +03:00
2019-12-26 13:48:06 +03:00
def addScheduler(self, prop, worker):
2019-07-22 10:20:59 +03:00
2019-12-26 13:48:06 +03:00
shedulerName = 'force-' + worker
2019-07-22 10:20:59 +03:00
self.shedulers.append(
schedulers.ForceScheduler(
2019-12-26 13:48:06 +03:00
name=shedulerName,
properties=prop,
builderNames=[worker]
2019-07-22 10:20:59 +03:00
)
)
2019-07-22 21:21:58 +03:00
def initScheduler(self):
2019-07-22 10:20:59 +03:00
2020-02-03 14:48:36 +03:00
buildersCode = ['LinuxBuilder',
2021-04-11 10:31:11 +03:00
'AndroidBuilder_v7',
'AndroidBuilder_v8',
2021-07-19 16:15:35 +03:00
'AndroidBuilder_v8Qt6',
2020-02-03 14:48:36 +03:00
'WindowsBuilder',
2020-06-19 13:43:02 +03:00
'LinuxCMakeBuilder',
2021-07-19 16:15:35 +03:00
'LinuxCMakeBuilderQt6',
2020-06-19 13:43:02 +03:00
'WindowsCMakeBuilder',
2020-10-08 21:14:37 +03:00
'Wasm32Builder',
2022-01-21 17:00:04 +03:00
'IOSCMakeBuilder',
2020-02-03 14:48:36 +03:00
]
2021-10-27 16:43:13 +03:00
prodBuilders = ['AndroidBuilder_v7',
'AndroidBuilder_v8',
'AndroidBuilder_v8Qt6',
'LinuxCMakeBuilder',
'LinuxCMakeBuilderQt6',
'WindowsCMakeBuilder',
2022-01-21 17:00:04 +03:00
'IOSCMakeBuilder'
2021-10-27 16:43:13 +03:00
]
buildersDeployCode = ['DocsGenerator']
2021-10-24 16:06:24 +03:00
buildersReleaseCode = ['prodDeployer']
2020-02-05 15:58:05 +03:00
buildersRepo = ['RepoGen']
2020-04-15 10:04:03 +03:00
self.masterConf['schedulers'] = self.shedulers
2020-02-03 14:48:36 +03:00
2020-04-15 10:04:03 +03:00
self.masterConf['schedulers'] += [
2019-07-22 10:20:59 +03:00
schedulers.AnyBranchScheduler(
2020-10-19 20:22:05 +03:00
name='githubTest',
2020-02-03 14:48:36 +03:00
builderNames=buildersCode,
2019-12-26 13:48:06 +03:00
properties={
2019-07-22 21:21:58 +03:00
'clean': True,
'test': True,
'release': False,
2021-11-01 11:18:14 +03:00
'repogen': False,
'prodDeploer': False,
2020-02-03 14:48:36 +03:00
'deploy': False
2019-07-22 21:21:58 +03:00
},
2020-10-08 21:14:37 +03:00
treeStableTimer=60
2019-07-22 21:21:58 +03:00
),
schedulers.AnyBranchScheduler(
2020-10-19 20:22:05 +03:00
name='githubDeploy',
builderNames=buildersDeployCode,
properties={
'clean': True,
'test': True,
'release': False,
2021-11-01 11:18:14 +03:00
'repogen': False,
'prodDeploer': False,
2020-10-19 21:24:15 +03:00
'deploy': True,
'copyFolder': 'Distro'
},
treeStableTimer=60
),
2021-10-27 16:43:13 +03:00
schedulers.SingleBranchScheduler(
name='production',
change_filter=util.ChangeFilter(branch="prod"),
builderNames=prodBuilders,
properties={
'clean': True,
'test': True,
'release': False,
2021-11-01 11:18:14 +03:00
'repogen': False,
'prodDeploer': True,
2021-10-27 16:43:13 +03:00
'deploy': True,
'copyFolder': 'Distro'
},
treeStableTimer=70
),
2020-02-03 14:48:36 +03:00
schedulers.Triggerable(name="repogen",
2021-10-27 17:47:12 +03:00
builderNames=buildersRepo),
schedulers.Triggerable(name="releaser",
builderNames=buildersReleaseCode)
2019-07-22 10:20:59 +03:00
]
2019-12-26 13:48:06 +03:00
return self.getMasterConf()