QuasarAppCI/BuildBotLib/buildbot.py

65 lines
2.0 KiB
Python
Raw Normal View History

2019-07-22 10:20:59 +03:00
from buildbot.plugins import util
import logging
import sys
import os
2019-12-26 13:48:06 +03:00
from BuildBotLib.buildBotIdentity import BuildBotIdentity
from BuildBotLib.buildBotServices import BuildBotServices
from BuildBotLib.buildBotWorkers import BuildBotWorkers
from BuildBotLib.buildBotDB import BuildBotDB
from BuildBotLib.buildBotShedulers import BuildBotShedulers
from BuildBotLib.buildBotChangeSource import BuildBotChangeSource
2019-07-22 10:20:59 +03:00
dir_path = os.path.dirname(os.path.realpath(__file__))
sys.path.append(dir_path)
2019-12-26 13:48:06 +03:00
2019-07-22 10:20:59 +03:00
class BuildBot:
def __init__(self):
2019-12-26 13:48:06 +03:00
self.masterConf = {}
2019-07-22 10:20:59 +03:00
self.masterConf['builders'] = []
self.masterConf['schedulers'] = []
self.masterConf['change_source'] = []
2019-12-26 13:48:06 +03:00
# WORKERS
2020-06-19 11:05:33 +03:00
self.workers = BuildBotWorkers(self.masterConf)
2019-12-26 13:48:06 +03:00
self.masterConf.update(self.workers.getMasterConf())
2019-07-22 10:20:59 +03:00
2019-12-26 13:48:06 +03:00
# BUILDBOT SERVICES
2020-06-19 11:05:33 +03:00
self.services = BuildBotServices(self.masterConf)
2019-12-26 13:48:06 +03:00
self.masterConf.update(self.services.getMasterConf())
2019-07-22 10:20:59 +03:00
2019-12-26 13:48:06 +03:00
# PROJECT IDENTITY
2020-06-19 11:05:33 +03:00
self.identity = BuildBotIdentity(self.masterConf)
2019-12-26 13:48:06 +03:00
self.masterConf.update(self.identity.getMasterConf())
2019-07-22 10:20:59 +03:00
2019-12-26 13:48:06 +03:00
# DB URL
2020-06-19 11:05:33 +03:00
self.db = BuildBotDB(self.masterConf)
2019-12-26 13:48:06 +03:00
self.masterConf.update(self.db.getMasterConf())
2019-07-22 10:20:59 +03:00
2019-12-26 13:48:06 +03:00
# change_source
2020-06-19 11:05:33 +03:00
self.sources = BuildBotChangeSource(self.masterConf)
2019-12-26 13:48:06 +03:00
self.masterConf.update(self.sources.getMasterConf())
2019-07-22 10:20:59 +03:00
2020-06-19 11:05:33 +03:00
# Shedulers
self.shedulers = BuildBotShedulers(self.masterConf)
2019-07-22 10:20:59 +03:00
def addBuilder(self, worker, factory):
self.masterConf['builders'].append(
util.BuilderConfig(
2019-12-26 13:48:06 +03:00
name=worker,
workernames=[worker],
2021-04-15 21:10:14 +03:00
factory=factory.getFactory().source()
2019-07-22 10:20:59 +03:00
)
)
2019-12-26 13:48:06 +03:00
self.shedulers.addScheduler(factory.getPropertyes(),
worker)
2019-07-22 10:20:59 +03:00
def addService(self, service):
logging.error("addService not support!")
def getMaster(self):
2019-12-26 13:48:06 +03:00
self.masterConf.update(self.shedulers.initScheduler())
2019-07-22 10:20:59 +03:00
return self.masterConf