[yocto] [yocto-autobuilder][PATCH 4/5] autobuilder/buildsteps: Add DAFTFlash buildstep
Aníbal Limón
anibal.limon at linux.intel.com
Fri Jun 2 10:13:04 PDT 2017
This will execute daft flash cycle without reboot and prepare the dut
for sanity tests.
[YOCTO #10604]
Signed-off-by: Aníbal Limón <anibal.limon at linux.intel.com>
Signed-off-by: Monserrat Sedeno <monserratx.sedeno.bustos.intel.com>
Signed-off-by: Edwin Plauchu <edwin.plauchu.camacho at linux.intel.com>
---
config/autobuilder.conf.example | 1 +
.../autobuilder/buildsteps/DaftFlash.py | 42 ++++++++++++++++++++++
lib/python2.7/site-packages/autobuilder/config.py | 1 +
3 files changed, 44 insertions(+)
create mode 100644 lib/python2.7/site-packages/autobuilder/buildsteps/DaftFlash.py
diff --git a/config/autobuilder.conf.example b/config/autobuilder.conf.example
index e5ec16b..2e992cf 100644
--- a/config/autobuilder.conf.example
+++ b/config/autobuilder.conf.example
@@ -98,3 +98,4 @@ PERFORMANCE_MAIL_SIG = "Multiline\nSig\nLine"
[Daft]
DAFT_WORKER_DEVICES_CFG = "/etc/daft/devices.cfg"
+DAFT_WORKER_WORKSPACE = "/home/ab/workspace"
diff --git a/lib/python2.7/site-packages/autobuilder/buildsteps/DaftFlash.py b/lib/python2.7/site-packages/autobuilder/buildsteps/DaftFlash.py
new file mode 100644
index 0000000..c16cb9e
--- /dev/null
+++ b/lib/python2.7/site-packages/autobuilder/buildsteps/DaftFlash.py
@@ -0,0 +1,42 @@
+import os
+
+from autobuilder.config import DAFT_WORKER_WORKSPACE_DIR
+from buildbot.steps.shell import ShellCommand
+
+class DaftFlash(ShellCommand):
+ haltOnFailure = True
+
+ name = "DaftFlash"
+
+ def __init__(self, factory, argdict=None, **kwargs):
+ self.tests = None
+ self.factory = factory
+ for k, v in argdict.iteritems():
+ setattr(self, k, v)
+ self.description = "DUT Flashing"
+ self.timeout = 100000
+ kwargs['timeout']=self.timeout
+ ShellCommand.__init__(self, **kwargs)
+
+ def start(self):
+ workspace_dir = DAFT_WORKER_WORKSPACE_DIR
+
+ dut_name = self.getProperty('dut_name')
+ workdir = self.getProperty('workdir')
+ image = self.getProperty('BUILDIMAGES')
+ machine = self.getProperty('MACHINE')
+
+ image_path = os.path.join(workdir, 'build', 'build', 'tmp', 'deploy',
+ 'images', machine, '%s-%s.hddimg' % (image, machine))
+ image_name = os.path.basename(image_path)
+
+ # XXX: DAFT needs to have the image in a shared workspace
+ self.command = "cp %s %s; " % (image_path, workspace_dir)
+
+ self.command += "cd %s; " % (workspace_dir)
+
+ # XXX: DAFT needs to be executed by root user
+ daft_cmd = "daft --setout %s %s" % (dut_name, image_name)
+ self.command += "sudo su -l -c 'cd {} && {}'; ".format(workspace_dir, daft_cmd)
+
+ ShellCommand.start(self)
diff --git a/lib/python2.7/site-packages/autobuilder/config.py b/lib/python2.7/site-packages/autobuilder/config.py
index 5bcf6c6..fcc08f0 100644
--- a/lib/python2.7/site-packages/autobuilder/config.py
+++ b/lib/python2.7/site-packages/autobuilder/config.py
@@ -24,3 +24,4 @@ IPK_PUBLISH_DIR = os.environ.get("IPK_PUBLISH_DIR")
DEB_PUBLISH_DIR = os.environ.get("DEB_PUBLISH_DIR")
PERFORMANCE_PUBLISH_DIR = os.environ.get("PERFORMANCE_PUBLISH_DIR")
DAFT_WORKER_DEVICES_CFG = os.environ.get("DAFT_WORKER_DEVICES_CFG")
+DAFT_WORKER_WORKSPACE = os.environ.get("DAFT_WORKER_WORKSPACE")
--
2.1.4
More information about the yocto
mailing list