continuous-integration - 当没有工件时,Jenkins Build失败

标签 continuous-integration hudson jenkins artifacts

我使用Jenkins在网络应用程序上运行一些集成测试(使用 cucumber , capybara 和 Selenium )

每次测试失败时,都会保存屏幕截图,HTML源和该过程的视频。

路径结构如下所示:

results/output/<test_name>/<files>

我使用Jenkins的存档工件功能来提供文件(模式:results/output/*/*)。效果很好。

但是,一旦构建成功,就没有屏幕截图/视频等...,并且构建失败,因为Jenkins找不到该模式的文件。

是否可以告诉Jenkins在不存在文件的情况下取得成功?

我不想做一个肮脏的黑客,涉及创建一个空的文件夹结构,如result/output/success/hooray.txt。

最佳答案

在我们的几个项目中,我遇到了类似的问题。我们有两种不同的解决方法(在两个不同的版本上)。

1)在构建步骤中添加了一个命令,如果尚不存在伪文件,则该命令将创建伪造的临时文件。

在这种情况下,本意是收集如果测试失败将生成的output.pdf文件。我添加了一个构建步骤,如果该文件不存在,我们将创建一个“missing.pdf”文件。然后,我从给定目录中收集的是“* .pdf”作为工件。这似乎工作得很好。

2)在另一个构建中,我们需要使用glob收集一组文件。

我们在这里所做的一切如此,因此构建步骤始终在目标区域中创建一个空文件。这样,全局始终匹配某些内容。

这些是迄今为止我们找到的最好的解决方案。如果您发现更好的东西,我很想听听。

关于continuous-integration - 当没有工件时,Jenkins Build失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8617029/

相关文章:

azure - 确保 azure pipeline 构建的 dll 和 nuget 包包含与 csproj 版本相同的信息

linux - Docker-在单个主机上组合多个实例

Hudson + Maven + Emma/Sonar = 构建周期运行 2 倍

java - 有人知道一个成熟的 Java 库可以帮助我查询 Hudson/Jenkins 服务器吗

jenkins - 让 gradle 执行 JUnit 测试(Android 应用程序,Android Studio)

php - 仅对修改后的文件运行 Ant exec 任务

node.js - Travis - 控制哪个 Node 版本用于 NPM 安装

java - 测试与外部服务的连接

continuous-integration - Jenkins/Hudson - 在所有奴隶上运行脚本

android - 为工作区中的每个项目创建 ant build.xml 文件