当每个文件都应该符合标准时,为啥詹金斯会说“没有找到工件”?

Posted

技术标签:

【中文标题】当每个文件都应该符合标准时,为啥詹金斯会说“没有找到工件”?【英文标题】:Why is Jenkins saying "No artifacts found" when every single file should fit the criteria?当每个文件都应该符合标准时,为什么詹金斯会说“没有找到工件”? 【发布时间】:2019-07-16 07:47:11 【问题描述】:

我设置了一个简单的 jenkins 服务器来为我的手机编译自定义 android ROM。但是,在归档构建 ROM 时,Jenkins 无法找到文件。

我已经尝试越来越广泛地使用标准,最终只将“.”放在存档选项中,但它仍然找不到任何文件。

这是我将文件复制到工作区目录以进行归档的脚本。

#!/bin/bash

# $1 - Build number
# $2 - Workspace Directory
# $3 - Device
# $4 - Build Directory

cd /var/lib/jenkins/android/"$4"/out/target/product/"$3"

for z in *.zip; do
    if [[ "$z" != *"ota"* ]]; then
        echo cp "$z" "$2/$z%.zip-$1.zip"
    fi
done

echo cp boot.img "$2/boot-$1.img"

这些是脚本运行时的相关消息。

+ /var/lib/jenkins/copy_artifacts.sh 17 /var/lib/jenkins/workspace/LineageOS/j7popltespr j7popltespr lineage
cp lineage-16.0-20190715-UNOFFICIAL-j7popltespr.zip /var/lib/jenkins/workspace/LineageOS/j7popltespr/lineage-16.0-20190715-UNOFFICIAL-j7popltespr-17.zip
cp lineage-16.0-20190716-UNOFFICIAL-j7popltespr.zip /var/lib/jenkins/workspace/LineageOS/j7popltespr/lineage-16.0-20190716-UNOFFICIAL-j7popltespr-17.zip
cp boot.img /var/lib/jenkins/workspace/LineageOS/j7popltespr/boot-17.img
Archiving artifacts
‘*.*’ doesn’t match anything
ERROR: Step ‘Archive the artifacts’ failed: No artifacts found that match the file pattern "*.*". Configuration error?
Finished: FAILURE

【问题讨论】:

【参考方案1】:

我已经解决了这个问题。 echo cp 实际上并没有复制文件。我已将其切换为cp -v

【讨论】:

以上是关于当每个文件都应该符合标准时,为啥詹金斯会说“没有找到工件”?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我无法在 Windows 10 中运行的詹金斯管道中运行批处理文件?

大学生活6 上课应该记笔记。应不应该有错题集?

为啥使用严格符合标准的程序和符合标准的实现不能确保绝对的可移植性?

为啥我的数组结果不符合我的 CSS 规则?

为啥 getcwd() 不符合 ISO C++ 标准?

react和vue区别以及为啥会说react适合大型项目