[yocto] [yocto-autobuilder][PATCH] PublishArtifacts.py: Make PublishArtifacts step to fail when cp fails
mariano.lopez at linux.intel.com
mariano.lopez at linux.intel.com
Tue Sep 27 07:34:22 PDT 2016
From: Mariano Lopez <mariano.lopez at linux.intel.com>
When publishing the artifacts, sometimes the cp commands fails
because it can't find the origin files, but the step in te autobuilder
is green, like there were no errors at all. This will catch these
errors, and will mark the build step as failed when cp fails.
[YOCTO #10319]
Signed-off-by: Mariano Lopez <mariano.lopez at linux.intel.com>
---
.../autobuilder/buildsteps/PublishArtifacts.py | 54 +++++++++++-----------
1 file changed, 28 insertions(+), 26 deletions(-)
diff --git a/lib/python2.7/site-packages/autobuilder/buildsteps/PublishArtifacts.py b/lib/python2.7/site-packages/autobuilder/buildsteps/PublishArtifacts.py
index e738521..633600c 100644
--- a/lib/python2.7/site-packages/autobuilder/buildsteps/PublishArtifacts.py
+++ b/lib/python2.7/site-packages/autobuilder/buildsteps/PublishArtifacts.py
@@ -34,6 +34,7 @@ class PublishArtifacts(ShellCommand):
ShellCommand.__init__(self, **kwargs)
def start(self):
+ pipeline = "|| export PA_FAIL=1"
layerversion_yoctobsp=1
DEST=self.getProperty("DEST")
buildername=self.getProperty("buildername")
@@ -80,12 +81,12 @@ class PublishArtifacts(ShellCommand):
command=command+"mkdir -p " + os.path.join(DEST, ADT_INST_PUBLISH_DIR) + ";"
command=command+"cp -R --no-dereference --preserve=links " + \
os.path.join(self.tmpdir, "deploy/sdk/") + \
- "*adt* " + os.path.join(DEST, ADT_INST_PUBLISH_DIR) + ";"
+ "*adt* " + os.path.join(DEST, ADT_INST_PUBLISH_DIR) + pipeline + ";"
elif artifact == "adt-installer-QA":
command=command+"mkdir -p " + os.path.join(DEST, ADTQA_INST_PUBLISH_DIR) + ";"
command=command+"cp -R --no-dereference --preserve=links " + \
os.path.join(self.tmpdir, "deploy/sdk/") + \
- "*adt* " + os.path.join(DEST, ADTQA_INST_PUBLISH_DIR)+ ";"
+ "*adt* " + os.path.join(DEST, ADTQA_INST_PUBLISH_DIR) + pipeline + ";"
elif artifact == "adtrepo-dev":
adt_dev_dest= os.environ.get("ADTREPO_DEV_PATH") + "/" + distroversion + "-" + got_revision_poky + '-' + self.getProperty("branch_poky")
command=command+"mkdir -p " + adt_dev_dest + "/adt-ipk;"
@@ -105,39 +106,39 @@ class PublishArtifacts(ShellCommand):
command=command+"cp --no-dereference --preserve=links " + \
os.path.join(deploy_dir, "org.*.zip") + \
" " + os.path.join(deploy_dir, "org.*.md5sum") + \
- " " + DEST + "/eclipse-plugin/"+ artifact_base +";"
+ " " + DEST + "/eclipse-plugin/"+ artifact_base + pipeline + ";"
elif artifact == "build-appliance":
command=command+"mkdir -p " + DEST + "/" + BA_PUBLISH_DIR + ";"
if self.layerversion_core is not None and int(self.layerversion_core) > 2:
command=command+"cp -R --no-dereference --preserve=links " + \
os.path.join(self.tmpdir, "deploy/images/qemux86-64/*.zip") + \
- " " + DEST + "/" + BA_PUBLISH_DIR + ";"
+ " " + DEST + "/" + BA_PUBLISH_DIR + pipeline + ";"
else:
command=command+"cp -R --no-dereference --preserve=links " + \
os.path.join(self.tmpdir, "deploy/images/*.zip") + \
- " " + DEST + "/" + BA_PUBLISH_DIR + ";"
+ " " + DEST + "/" + BA_PUBLISH_DIR + pipeline + ";"
elif artifact == "buildtools-tarball":
artifact_name, deploy_image_dir = self.getDeployNames(artifact, buildername)
command=command+self.generateMD5cmd(artifact, deploy_image_dir)
command=command+"mkdir -p " + DEST + "/buildtools;"
command=command+"cp -R --no-dereference --preserve=links " + \
os.path.join(deploy_image_dir, "*buildtools*") + \
- " " + DEST + "/buildtools;"
+ " " + DEST + "/buildtools" + pipeline + ";"
elif artifact == "rpm":
command=command+"mkdir -p " + os.path.join(DEST, RPM_PUBLISH_DIR) + ";"
command=command+"cp -R --no-dereference --preserve=links " + \
os.path.join(self.tmpdir, "deploy/rpm/* ") + \
- os.path.join(DEST, RPM_PUBLISH_DIR) + ";"
+ os.path.join(DEST, RPM_PUBLISH_DIR) + pipeline + ";"
elif artifact == "deb":
command=command+"mkdir -p " + os.path.join(DEST, DEB_PUBLISH_DIR) + ";"
command=command+"cp -R --no-dereference --preserve=links " + \
os.path.join(self.tmpdir, "deploy/deb/* ") + \
- os.path.join(DEST, DEB_PUBLISH_DIR) + ";"
+ os.path.join(DEST, DEB_PUBLISH_DIR) + pipeline + ";"
elif artifact == "ipk":
command=command+"mkdir -p " + os.path.join(DEST, IPK_PUBLISH_DIR) + ";"
command=command+"cp -R --no-dereference --preserve=links " + \
os.path.join(self.tmpdir, "deploy/ipk/* ") + \
- os.path.join(DEST, IPK_PUBLISH_DIR) + ";"
+ os.path.join(DEST, IPK_PUBLISH_DIR) + pipeline + ";"
elif artifact == "sstate":
if str(os.environ.get("PUBLISH_SSTATE")) == "True":
sstate_dir = os.environ.get("SSTATE_DIR")
@@ -145,7 +146,7 @@ class PublishArtifacts(ShellCommand):
if sstate_dir is not None and pub_dir is not None:
command=command+"mkdir -p " + pub_dir + ";"
command=command+"cp -R --no-dereference --preserve=links " + \
- sstate_dir + "/* " + pub_dir + ";"
+ sstate_dir + "/* " + pub_dir + pipeline + ";"
else:
command=command+"echo 'Skipping copy of sstate, directories not configured.';"
else:
@@ -156,31 +157,31 @@ class PublishArtifacts(ShellCommand):
command=command+"mkdir -p " + os.path.join(DEST, X86TC_PUBLISH_DIR) + ";"
command=command+"cp -R --no-dereference --preserve=links " + \
os.path.join(deploy_image_dir, "poky-*i686-core-image*.sh ") + \
- os.path.join(DEST, X86TC_PUBLISH_DIR) + ";"
+ os.path.join(DEST, X86TC_PUBLISH_DIR) + pipeline + ";"
command=command+"mkdir -p " + os.path.join(DEST, X8664TC_PUBLISH_DIR) + ";"
command=command+"cp -R --no-dereference --preserve=links " + \
os.path.join(deploy_image_dir, "poky-*x86_64-core-image*.sh ") + \
- os.path.join(DEST, X8664TC_PUBLISH_DIR) + ";"
+ os.path.join(DEST, X8664TC_PUBLISH_DIR) + pipeline + ";"
elif artifact == "uninative":
artifact_name, deploy_image_dir = self.getDeployNames(artifact, buildername)
command=command+self.generateMD5cmd(artifact, deploy_image_dir)
command=command+"mkdir -p " + os.path.join(DEST, X86TC_PUBLISH_DIR) + ";"
command=command+"cp -R --no-dereference --preserve=links " + \
os.path.join(deploy_image_dir, "i686-nativesdk-libc* ") + \
- os.path.join(DEST, X86TC_PUBLISH_DIR) + ";"
+ os.path.join(DEST, X86TC_PUBLISH_DIR) + pipeline + ";"
command=command+"mkdir -p " + os.path.join(DEST, X8664TC_PUBLISH_DIR) + ";"
command=command+"cp -R --no-dereference --preserve=links " + \
os.path.join(deploy_image_dir, "x86_64-nativesdk-libc* ") + \
- os.path.join(DEST, X8664TC_PUBLISH_DIR) + ";"
+ os.path.join(DEST, X8664TC_PUBLISH_DIR) + pipeline + ";"
elif artifact == "oe-toolchain":
command=command+"mkdir -p " + os.path.join(DEST, X86TC_PUBLISH_DIR) + ";"
command=command+"cp -R --no-dereference --preserve=links " + \
os.path.join(self.tmpdir, "deploy/sdk/oecore-i686* ") + \
- os.path.join(DEST, X86TC_PUBLISH_DIR) + ";"
+ os.path.join(DEST, X86TC_PUBLISH_DIR) + pipeline + ";"
command=command+"mkdir -p " + os.path.join(DEST, X8664TC_PUBLISH_DIR) + ";"
command=command+"cp -R --no-dereference --preserve=links " + \
os.path.join(self.tmpdir, "deploy/sdk/oecore-x86_64* ") + \
- os.path.join(DEST, X8664TC_PUBLISH_DIR) + ";"
+ os.path.join(DEST, X8664TC_PUBLISH_DIR) + pipeline + ";"
elif "qemu" in artifact:
artifact_name, deploy_image_dir = self.getDeployNames(artifact, buildername)
command += self.generateMD5cmd(artifact, deploy_image_dir)
@@ -190,35 +191,35 @@ class PublishArtifacts(ShellCommand):
command=command+"cp --no-dereference --preserve=links " + \
deploy_image_dir + "/*\.direct " + \
deploy_image_dir + "/*\.direct.md5sum " + \
- DEST + "/" + QEMU_PUBLISH_DIR + "/" + artifact_name + ";"
+ DEST + "/" + QEMU_PUBLISH_DIR + "/" + artifact_name + pipeline + ";"
else:
command=command+"cp -R --no-dereference --preserve=links " + \
deploy_image_dir + \
- "/*" + artifact + "* " + DEST + "/" + QEMU_PUBLISH_DIR + "/" + artifact_name + ";"
+ "/*" + artifact + "* " + DEST + "/" + QEMU_PUBLISH_DIR + "/" + artifact_name + pipeline + ";"
elif "mpc8315e" in artifact:
artifact_name, deploy_image_dir = self.getDeployNames(artifact, buildername)
command += self.generateMD5cmd(artifact, deploy_image_dir)
command=command+"mkdir -p " + DEST + "/" + MACHINE_PUBLISH_DIR + "/" + artifact_name + ";"
command=command+"cp -R --no-dereference --preserve=links " + \
deploy_image_dir + \
- "/*mpc8315* " + DEST + "/" + MACHINE_PUBLISH_DIR + "/" + artifact_name + ";"
+ "/*mpc8315* " + DEST + "/" + MACHINE_PUBLISH_DIR + "/" + artifact_name + pipeline + ";"
elif artifact == "tiny":
command=command+"mkdir -p " + DEST + "/" + QEMU_PUBLISH_DIR + "/qemu-tiny;"
command += self.generateMD5cmd(artifact, QEMU_PUBLISH_DIR + "/qemu-tiny")
if self.layerversion_core is not None and int(self.layerversion_core) > 2:
command=command+"cp -R --no-dereference --preserve=links " + \
os.path.join(self.tmpdir, "deploy/images/qemux86/* ") + \
- " " + DEST + "/" + QEMU_PUBLISH_DIR + "/qemu-tiny;"
+ " " + DEST + "/" + QEMU_PUBLISH_DIR + "/qemu-tiny" + pipeline + ";"
else:
command=command+"cp -R --no-dereference --preserve=links " + \
os.path.join(self.tmpdir, "deploy/images/*") + \
- DEST + "/" + QEMU_PUBLISH_DIR + "/qemu-tiny;"
+ DEST + "/" + QEMU_PUBLISH_DIR + "/qemu-tiny" + pipeline + ";"
elif artifact == "conf":
artifact_name, deploy_image_dir = self.getDeployNames(artifact, buildername)
command=command+"mkdir -p " + DEST + "/"+ MACHINE_PUBLISH_DIR + "/" + artifact_name + "/conf;"
command=command+"cp -R --no-dereference " + \
os.path.join(self.basedir, "conf/") + \
- "/* " + DEST + "/" + MACHINE_PUBLISH_DIR + "/" + artifact_name + "/conf;"
+ "/* " + DEST + "/" + MACHINE_PUBLISH_DIR + "/" + artifact_name + "/conf" + pipeline + ";"
elif artifact == "md5sums":
command = command + "echo 'MD5sums are generated and deployed from the image or toolchain artifact';"
elif artifact == "None":
@@ -238,19 +239,20 @@ class PublishArtifacts(ShellCommand):
command=command+"cp --no-dereference --preserve=links " + \
deploy_image_dir + "/*\.direct " + \
deploy_image_dir + "/*\.direct.md5sum " + \
- DEST + "/" + MACHINE_PUBLISH_DIR + "/" + artifact_name + ";"
+ DEST + "/" + MACHINE_PUBLISH_DIR + "/" + artifact_name + pipeline + ";"
else:
command=command+"mkdir -p " + DEST + "/"+ MACHINE_PUBLISH_DIR +"/" + artifact_name + ";"
if "beagle" in artifact:
command=command+"cp -R --no-dereference --preserve=links " + \
deploy_image_dir + \
- "/*Image* " + DEST + "/" + MACHINE_PUBLISH_DIR +"/" + artifact_name + ";"
+ "/*Image* " + DEST + "/" + MACHINE_PUBLISH_DIR +"/" + artifact_name + pipeline + ";"
command=command+"cp -R --no-dereference --preserve=links " + \
deploy_image_dir + \
- "/u-boot* " + DEST + "/" + MACHINE_PUBLISH_DIR +"/" + artifact_name + ";"
+ "/u-boot* " + DEST + "/" + MACHINE_PUBLISH_DIR +"/" + artifact_name + pipeline + ";"
command=command+"cp -R --no-dereference --preserve=links " + \
deploy_image_dir + \
- "/*"+artifact+"* " + DEST + "/" + MACHINE_PUBLISH_DIR +"/" + artifact_name + ";"
+ "/*"+artifact+"* " + DEST + "/" + MACHINE_PUBLISH_DIR +"/" + artifact_name + pipeline + ";"
+ command=command+'if [ "$PA_FAIL" = "1" ]; then exit 1; fi;'
self.command = command
else:
self.command = "echo 'Skipping Step.'"
--
1.9.1
More information about the yocto
mailing list