blob: d2c196f2174ad812bdb68e85b6712b8bb9a0c1ee (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
#
# SPDX-License-Identifier: GPL-2.0-only
#
from twisted.internet import defer
from buildbot.process import buildstep
import json
import os
from yoctoabb import config
class WriteLayerInfo(buildstep.ShellMixin, buildstep.BuildStep):
name = "WriteLayerInfo"
def __init__(self, **kwargs):
buildstep.BuildStep.__init__(self, **kwargs)
def generateLayerInfo(self):
layerinfo = {}
writerepos = config.buildertorepos.get(self.getProperty("buildername"))
if not writerepos:
writerepos = config.buildertorepos["default"]
for repo in writerepos:
repodict = {}
repodict["url"] = self.getProperty("repo_{}".format(repo))
repodict["branch"] = self.getProperty("branch_{}".format(repo))
repodict["revision"] = self.getProperty("commit_{}".format(repo))
layerinfo[repo] = repodict
return json.dumps(layerinfo, sort_keys=True, indent=4,
separators=(',', ': '))
@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)
defer.returnValue(cmd.results())
@defer.inlineCallbacks
def run(self):
cmd = RemoteCommand(args)
log = yield self.addLog('output')
cmd.useLog(log, closeWhenFinished=True)
yield self.runCommand(cmd)
|