diff --git a/BuildBotLib/BuildBot.pyproject b/BuildBotLib/BuildBot.pyproject index e269b00..f1f3313 100644 --- a/BuildBotLib/BuildBot.pyproject +++ b/BuildBotLib/BuildBot.pyproject @@ -4,13 +4,10 @@ "basemodule.py", "../master.cfg", "README.md", - "testmodule.py", "qmake.py", "crossplatformQmake.py", "cmake.py", "make.py", - "stepsLib.py", - "quasarAppCoin.py", "buildBotWorkers.py", "buildBotServices.py", "buildBotIdentity.py", diff --git a/BuildBotLib/buildBotShedulers.py b/BuildBotLib/buildBotShedulers.py index 9ee75e8..3413cff 100644 --- a/BuildBotLib/buildBotShedulers.py +++ b/BuildBotLib/buildBotShedulers.py @@ -38,8 +38,11 @@ class BuildBotShedulers(BuildBotModule): 'IOSCMakeBuilder' ] + webBuilders = ['LinuxCMakeBuilderQt6'] + buildersDeployCode = ['DocsGenerator'] buildersReleaseCode = ['prodDeployer'] + buildersReleaseWebCode = ['webDeployer'] buildersRepo = ['RepoGen'] self.masterConf['schedulers'] = self.shedulers @@ -95,11 +98,34 @@ class BuildBotShedulers(BuildBotModule): treeStableTimer=70 ), + schedulers.SingleBranchScheduler( + name='productionWeb', + change_filter=util.ChangeFilter(repository_re=".*quasarappsite.*", branch="prod"), + builderNames=webBuilders, + properties={ + 'clean': True, + 'test': True, + 'release': False, + 'repogen': False, + 'webDeploer': True, + 'deploy': True, + 'copyFolder': 'Distro', + 'stopOnErrors': True + + }, + treeStableTimer=70 + ), + + schedulers.Triggerable(name="repogen", builderNames=buildersRepo), schedulers.Triggerable(name="releaser", builderNames=buildersReleaseCode) + + schedulers.Triggerable(name="releaserweb", + builderNames=buildersReleaseWebCode) + ] return self.getMasterConf() diff --git a/BuildBotLib/buildBotWorkers.py b/BuildBotLib/buildBotWorkers.py index 6c7b9c6..9f9570d 100644 --- a/BuildBotLib/buildBotWorkers.py +++ b/BuildBotLib/buildBotWorkers.py @@ -30,6 +30,8 @@ class BuildBotWorkers(BuildBotModule): worker.Worker("Wasm32Builder", password), worker.Worker("DocsGenerator", password), worker.Worker("prodDeployer", password), + worker.Worker("webDeployer", password), + ] # 'protocols' contains information diff --git a/BuildBotLib/make.py b/BuildBotLib/make.py index d5855f4..6a1091d 100644 --- a/BuildBotLib/make.py +++ b/BuildBotLib/make.py @@ -50,6 +50,9 @@ class Make(BaseModule): def isProdDeploer(self, step): return step.getProperty('prodDeploer') + def isWebDeploer(self, step): + return step.getProperty('webDeploer') + def isTest(self, step): return step.getProperty('test') @@ -376,6 +379,17 @@ class Make(BaseModule): ) ) + factory.addStep( + steps.Trigger(schedulerNames=['releaserweb'], + doStepIf=lambda step: + self.isWebDeploer(step), + set_properties={ + 'copyFolder': 'Distro', + 'prodName': 'prod.deb' + } + ) + ) + factory.addStep( self.generateStep("git clean -xdf", self.platform, @@ -434,6 +448,12 @@ class Make(BaseModule): default=False ), + util.BooleanParameter( + name='webDeploer', + label='release web project', + default=False + ), + util.StringParameter( name='copyFolder', label='Folder with buildet data', diff --git a/master.cfg b/master.cfg index e56da57..e0884df 100644 --- a/master.cfg +++ b/master.cfg @@ -47,6 +47,7 @@ bot.addBuilder("RepoGen", repoGen) bot.addBuilder("Wasm32Builder", wasm) bot.addBuilder("DocsGenerator", docs) bot.addBuilder("prodDeployer", release) +bot.addBuilder("webDeployer", release) bot.addBuilder("IOSCMakeBuilder", iosBuilder)