如何让 Bamboo 文物收集整个文件夹?
Posted
技术标签:
【中文标题】如何让 Bamboo 文物收集整个文件夹?【英文标题】:How to have Bamboo artifacts collect a whole folders? 【发布时间】:2013-02-15 12:51:17 【问题描述】:我有一个简单的计划和一份简单的工作。
任务:
-
源代码签出
MSBuild
运行测试
生成测试报告
我的实用程序通过四个步骤生成带有屏幕截图的测试报告。该报告包含图像的绝对链接。 (例如:onclick="window.open('./Screenshots/66ef3a03-8b82-4b40-b49d-b0155e273738.png');return false;"
)。
如果我在本地机器上打开报告,报告工作正常,但在 Bamboo 上我收到错误“找不到页面”,因为 Bamboo 没有收集“屏幕截图”文件夹。
如何设置工件定义以收集包含文件的文件夹?
附:我尝试设置\*.*
复制模式,但Bamboo只收集文件(没有文件夹和子文件夹)
【问题讨论】:
【参考方案1】:您只需提供文件夹位置,例如“build/”,然后,在复制模式中,您可以输入 **/*.* 这应该复制所有文件你要。
请注意:
该位置相对于构建目录。不要使用绝对路径来引用该位置。 位置不支持星号。对于此字段,请提供文件所在的文件夹名称。另外,您可以根据需要定义任意数量的工件定义。
【讨论】:
@hatesms 是的,它会的。【参考方案2】:执行此操作的最佳方法是将所有工件压缩在一起。我创建了一个 bash 脚本来执行此操作
cd "toArtifactFolder"
zip -r Artifact .
然后在竹子项目设置中,您必须编辑工件并将位置更改为工件 zip 文件所在的位置
然后在 Copy Pattern 中输入 zip 文件,例如 Artifact.zip
【讨论】:
请参阅我的问题:“我如何设置工件定义以收集包含文件的文件夹”。我的主要目标:通过网络打开带有屏幕截图的 html 报告文件。如果我收集所有要存档的文件,首先我应该下载、解压缩,然后才打开报告。这很不方便。 是的,我已经完成了这个脚本。这样,我的存档大小为 50mb。每次构建后我都应该下载这个存档..这不是一个好办法。 我最终采用了相同的方法来重用我的 node_modules 文件夹作为工件。我添加了一个“命令”任务,可执行文件为“tar”,“-cvzf node_modules.tar.gz ./node_modules/”作为参数。然后在消费作业中创建工件依赖项后,我创建了一个相应的“命令”任务,我需要在其中使用工件,唯一的区别是参数值:“-xvzf node_modules.tar.gz”【参考方案3】:Bamboo 使用"Ant file copy pattern"。
递归匹配所有文件:**/*
这确实包括几乎所有内容
不幸的是,这不包括dot-files,至少在我对linux构建代理的测试中。除了第二个工件(模式**/.*
)或创建存档之外,我找不到解决方法。
匹配任何子文件夹中的所有文件:*/*
这不包括foo/bar/test.xyz
这确实包括foo/test.xyz
和bar/test.xyz
您可以进行更高级的匹配;例如您可以使用build/**/*.jar
从构建目录中复制所有 jar。
欲了解更多信息,请参阅docs
【讨论】:
以上是关于如何让 Bamboo 文物收集整个文件夹?的主要内容,如果未能解决你的问题,请参考以下文章
Bamboo 到 Jenkins 迁移:我可以访问和比较 XML 配置文件吗?