From: Erik Mackdanz Date: Sat, 19 Oct 2024 21:52:08 +0000 (+0000) Subject: custom shell build step X-Git-Url: https://git.humopery.space/?a=commitdiff_plain;h=8d3fa687ccc7943447d2eaa75a96600c43654454;p=private%2Fbuildbot-default.git custom shell build step --- diff --git a/master.cfg b/master.cfg index b1b6138..399fe25 100644 --- a/master.cfg +++ b/master.cfg @@ -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"],