mirror of
git://git.yoctoproject.org/yocto-autobuilder2.git
synced 2025-12-18 16:25:27 +01:00
Now that bitbake-setup handles branches, update to this. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
85 lines
2.5 KiB
Python
85 lines
2.5 KiB
Python
#
|
|
# SPDX-License-Identifier: GPL-2.0-only
|
|
#
|
|
# Author: Richard Purdie <richard.purdie@linuxfoundation.org>
|
|
#
|
|
|
|
from twisted.internet import defer
|
|
from buildbot.process import buildstep
|
|
import json
|
|
import os
|
|
|
|
from yoctoabb import config
|
|
|
|
mappings = {
|
|
"oecore" : "openembedded-core",
|
|
}
|
|
|
|
class WriteBBSetupJson(buildstep.ShellMixin, buildstep.BuildStep):
|
|
name = "WriteBBSetupJson"
|
|
|
|
def __init__(self, **kwargs):
|
|
buildstep.BuildStep.__init__(self, **kwargs)
|
|
|
|
def generateSetupJson(self):
|
|
setupdata = {}
|
|
setupdata["description"] = "Autobuilder generated bitbake setup json config"
|
|
setupdata["version"] = "1.0"
|
|
setupdata["sources"] = {}
|
|
|
|
writerepos = config.buildertorepos.get(self.getProperty("buildername"))
|
|
if not writerepos:
|
|
writerepos = config.buildertorepos["default"]
|
|
|
|
for repo in writerepos:
|
|
# poky is only used for older releases which don't use bitbake-setup
|
|
if repo == "poky":
|
|
continue
|
|
|
|
url = self.getProperty("repo_{}".format(repo))
|
|
branch = self.getProperty("branch_{}".format(repo))
|
|
revision = self.getProperty("commit_{}".format(repo))
|
|
|
|
if revision and revision != "HEAD":
|
|
rev = revision
|
|
else:
|
|
rev = branch
|
|
|
|
reponame = repo
|
|
if repo in mappings:
|
|
reponame = mappings[repo]
|
|
repodict = {
|
|
"git-remote": {
|
|
"remotes" : {
|
|
"origin": {
|
|
"uri" : url
|
|
}
|
|
},
|
|
"branch" : branch,
|
|
"rev" : rev
|
|
}
|
|
}
|
|
setupdata["sources"][reponame] = repodict
|
|
|
|
return json.dumps(setupdata, sort_keys=True, indent=4,
|
|
separators=(',', ': '))
|
|
|
|
@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()
|
|
|
|
|
|
@defer.inlineCallbacks
|
|
def run(self):
|
|
cmd = RemoteCommand(args)
|
|
log = yield self.addLog('output')
|
|
cmd.useLog(log, closeWhenFinished=True)
|
|
yield self.runCommand(cmd)
|