@@ -5,9 +5,8 @@
#
from twisted.internet import defer
-from buildbot.process import buildstep
+from buildbot.plugins import steps
import json
-import os
from yoctoabb import config
@@ -15,11 +14,11 @@ mappings = {
"oecore" : "openembedded-core",
}
-class WriteBBSetupJson(buildstep.ShellMixin, buildstep.BuildStep):
+class WriteBBSetupJson(steps.StringDownload):
name = "WriteBBSetupJson"
def __init__(self, **kwargs):
- buildstep.BuildStep.__init__(self, **kwargs)
+ super().__init__(s="", workerdest="bbsetup-overrides.json", **kwargs)
def generateSetupJson(self):
setupdata = {}
@@ -66,14 +65,10 @@ class WriteBBSetupJson(buildstep.ShellMixin, buildstep.BuildStep):
@defer.inlineCallbacks
def run(self):
- repojson = self.generateSetupJson()
- layerinfo = os.path.join(self.getProperty("builddir"),
- "bbsetup-overrides.json")
- writerepos = "printf '%s' > %s" % (repojson, layerinfo)
- cmd = yield self.makeRemoteShellCommand(
- command=writerepos)
- yield self.runCommand(cmd)
- return cmd.results()
+ self.s = self.generateSetupJson()
+ self.workdir = self.getProperty("builddir")
+ result = yield super().run()
+ return result
@defer.inlineCallbacks
@@ -3,18 +3,17 @@
#
from twisted.internet import defer
-from buildbot.process import buildstep
+from buildbot.plugins import steps
import json
-import os
from yoctoabb import config
-class WriteLayerInfo(buildstep.ShellMixin, buildstep.BuildStep):
+class WriteLayerInfo(steps.StringDownload):
name = "WriteLayerInfo"
def __init__(self, **kwargs):
- buildstep.BuildStep.__init__(self, **kwargs)
+ super().__init__(s="", workerdest="layerinfo.json", **kwargs)
def generateLayerInfo(self):
layerinfo = {}
@@ -34,14 +33,10 @@ class WriteLayerInfo(buildstep.ShellMixin, buildstep.BuildStep):
@defer.inlineCallbacks
def run(self):
- repojson = self.generateLayerInfo()
- layerinfo = os.path.join(self.getProperty("builddir"),
- "layerinfo.json")
- writerepos = "printf '%s' > %s" % (repojson, layerinfo)
- cmd = yield self.makeRemoteShellCommand(
- command=writerepos)
- yield self.runCommand(cmd)
- return cmd.results()
+ self.s = self.generateLayerInfo()
+ self.workdir = self.getProperty("builddir")
+ result = yield super().run()
+ return result
@defer.inlineCallbacks
Use Buildbot StringDownload for repo metadata JSON instead of shell printf. This transfers scheduler-supplied repo values as file content without shell interpretation. AI-Generated: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Anders Heimer <anders.heimer@est.tech> --- steps/writebbsetupjson.py | 19 +++++++------------ steps/writelayerinfo.py | 19 +++++++------------ 2 files changed, 14 insertions(+), 24 deletions(-)