From: Mariano Lopez <[email protected]> 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 <[email protected]> --- .../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 [email protected] https://lists.yoctoproject.org/listinfo/yocto
