From: Mariano Lopez <mariano.lo...@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.lo...@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 -- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto