]> Humopery - private/buildbot-default.git/commitdiff
custom shell build step
authorErik Mackdanz <erikmack@gmail.com>
Sat, 19 Oct 2024 21:52:08 +0000 (21:52 +0000)
committerErik Mackdanz <erikmack@gmail.com>
Sat, 19 Oct 2024 21:52:08 +0000 (21:52 +0000)
master.cfg

index b1b61385e16f8327786321eda718e8c04e1a4a2f..399fe25929f8704db2740053b60560b3c4175eaa 100644 (file)
@@ -2,6 +2,8 @@
 # ex: set filetype=python:
 
 from buildbot.plugins import *
+from twisted.internet import defer
+from buildbot.process import buildstep
 
 # This is a sample buildmaster config file. It must be installed as
 # 'master.cfg' in your buildmaster's base directory.
@@ -121,6 +123,20 @@ c['schedulers'].append(schedulers.Triggerable(
                             name="build-backend-job",
                             builderNames=["build-backend-job"]))
 
+####### CUSTOM BUILD STEPS
+
+class HLedgerVersion(buildstep.ShellMixin, buildstep.BuildStep):
+    def __init__(self, **kwargs):
+        kwargs = self.setupShellMixin(kwargs, prohibitArgs=['command'])
+        super().__init__(**kwargs)
+
+    @defer.inlineCallbacks
+    def run(self):
+        cmd = yield self.makeRemoteShellCommand(
+                command=["hledger","--version"])
+        yield self.runCommand(cmd)
+        return cmd.results()
+
 ####### BUILDERS
 
 # The 'builders' list defines the Builders, which tell Buildbot how to perform a build:
@@ -183,38 +199,47 @@ c['builders'].append(
                        factory=factory))
 
 factory = util.BuildFactory()
-factory.addStep(steps.Trigger(schedulerNames=["fetch-deps-stage"],waitForFinish=True))
-factory.addStep(steps.Trigger(schedulerNames=["build-stage"],waitForFinish=True))
+factory.addStep(steps.Trigger(schedulerNames=["fetch-deps-stage"],
+                              waitForFinish=True,
+                              name="fetch-deps"))
+factory.addStep(steps.Trigger(schedulerNames=["build-stage"],
+                              waitForFinish=True,
+                              name="build"))
 c['builders'].append(
     util.BuilderConfig(name="stage-test",
                        tags=["stage-test","entry"],
                        workernames=["carbon-worker"],
                        factory=factory))
 factory = util.BuildFactory()
-factory.addStep(steps.ShellCommand(command=["echo", "hello"]))
+factory.addStep(steps.ShellCommand(command=["echo", "hello"],name="echo"))
 c['builders'].append(
     util.BuilderConfig(name="fetch-deps-stage",
                        tags=["stage-test"],
                        workernames=["carbon-worker"],
                        factory=factory))
 factory = util.BuildFactory()
-factory.addStep(steps.Trigger(schedulerNames=["build-frontend-job"],waitForFinish=True))
-factory.addStep(steps.Trigger(schedulerNames=["build-backend-job"],waitForFinish=True))
+factory.addStep(steps.Trigger(schedulerNames=["build-frontend-job"],
+                              waitForFinish=True,
+                              name="build frontend"))
+factory.addStep(steps.Trigger(schedulerNames=["build-backend-job"],
+                              waitForFinish=True,
+                              name="build backend"))
 c['builders'].append(
     util.BuilderConfig(name="build-stage",
                        tags=["stage-test"],
                        workernames=["carbon-worker"],
                        factory=factory))
 factory = util.BuildFactory()
-factory.addStep(steps.ShellCommand(command=["sleep", "12"]))
-factory.addStep(steps.ShellCommand(command=["exit", "1"]))
+factory.addStep(HLedgerVersion(name="hledger version"))
+factory.addStep(steps.ShellCommand(command=["sleep", "12"],name="sleep"))
+factory.addStep(steps.ShellCommand(command=["exit", "1"],name="fail"))
 c['builders'].append(
     util.BuilderConfig(name="build-frontend-job",
                        tags=["stage-test"],
                        workernames=["carbon-worker"],
                        factory=factory))
 factory = util.BuildFactory()
-factory.addStep(steps.ShellCommand(command=["sleep", "20"]))
+factory.addStep(steps.ShellCommand(command=["sleep", "20"],name="sleep"))
 c['builders'].append(
     util.BuilderConfig(name="build-backend-job",
                        tags=["stage-test"],