From ae6bd722a3c79192a76c43f4380a14b1e7c4689b Mon Sep 17 00:00:00 2001
From: EndrII <EndrIIMail@gmail.com>
Date: Sun, 26 May 2024 12:32:47 +0200
Subject: [PATCH] added webDeployer

---
 BuildBotLib/BuildBot.pyproject   |  3 ---
 BuildBotLib/buildBotShedulers.py | 26 ++++++++++++++++++++++++++
 BuildBotLib/buildBotWorkers.py   |  2 ++
 BuildBotLib/make.py              | 20 ++++++++++++++++++++
 master.cfg                       |  1 +
 5 files changed, 49 insertions(+), 3 deletions(-)

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)