问题标签 [jenkins]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2525 浏览

performance - 为什么 hudson “mvn clean install” 构建比在命令行上花费的时间长 3-6 倍?

我们在 CI 服务器 (hudson) 上看到相对较长的构建时间,它们开始阻碍我们。我知道 hudson 不仅仅是调用 maven,我很乐意多给它 10-20% 的时间来完成这项工作,但是一个数量级的减速似乎太多了。

任何人都知道为什么会这样以及如何解决问题?我将首先说不是原因的原因:

  • 运行 hudson 的虚拟机:在命令行上,它花费的时间与我的开发 PC 大致相同
  • 其他并发任务:我确保没有从构建任务中转移资源

maven 目标实际上是干净和安装的,没有像 javadoc、checkstyle 等那样花哨和资源密集型的东西。查看 hudson 构建任务控制台输出,“从 [我们的 Nexus 人工制品存储库] 检索以前的内部版本号”时似乎有延迟,但我不知道有一种简单的方法来衡量这一步的性能,发布一个人工制品似乎太简单了,无法证明速度的总差异是合理的。

(此线程中也描述了问题)

更新:

我们已将 Hudson/Jenkins 升级到最新版本,并且能够使用计时插件。简洁版本:

  • 好消息:我们现在知道nexus 是造成问题的原因
  • 坏消息:我们仍然不知道为什么

更多细节

在我们的一个实际 maven 项目中(maven 构建时间:3 分钟,hudson 构建时间:9 分钟),我们可以看到 hudson 也在 3 分钟内执行构建,但随后需要 6 分钟将人工制品上传到 nexus。

使用 nexus 的 Web UI 手动上传另一个人工制品,我能够确认以下内容:

  • 实际的人工制品上传在很短的时间内完成(即几秒钟)
  • 在这几秒钟之后,人工制品显示为<nexusworkdir>/nexus/storage/test/test2/test2/1.0.0/test2-1.0.0.rpm

真正令人困惑的是为什么 nexus 需要花费一分钟来创建这个文件: <nexusworkdir>/nexus/proxy/attributes/test/test2/test2/1.0.0/test2-1.0.0.rpm

据我所知,它只是计算 MD5 和 SHA1 签名并记录一般的人工制品信息,但是 75MB 文件的 md5sum 和 sha1sum 需要 <1s 才能运行......

最后,它似乎不是某种网络超时,因为延迟似乎与伪像大小大致成正比。

任何关于 nexus 在收到人工制品后做什么的想法都值得赞赏。

更新 2

将 nexus 日志级别设置为调试,当上传人工制品时,nexus 会记录以下内容:

osnpslfDefau~ - 复制缓冲区大小为:4096 的流

-响应/nexus/content/groups/public/org/python/jython/2.5.2/jython-2.5.2.jar 200

- 请求/nexus/content/groups/public/org/python/jython/2.5.2/jython-2.5.2.jar.sha1 on

-响应/nexus/content/groups/public/org/python/jython/2.5.2/jython-2.5.2.jar.sha1 200

- 在 org.mortbay.jetty.HttpConnection@141a720 上请求 /nexus/content/groups/public/.index/nexus-maven-repository-index.properties

osnpmmM2Group~ - public retrieveItem() :: FOUND public:/.index/nexus-maven-repository-index.properties

- 响应 /nexus/content/groups/public/.index/nexus-maven-repository-index.properties 200

osnpaDefaultAt~ - 在 UID=test:/test/test/1.0.1/test-1.0.1.rpm 上存储属性

- servlet 持有者=nexus

- 响应 /nexus/ext-2.3/resources/images/default/window/icon-info.gif 200

- 在 org.mortbay.jetty.HttpConnection@1dbd88f 上请求 /nexus/service/local/log/config ....

它似乎只是在那里坐了一分钟左右,然后继续工作。任何想法为什么 nexus 这样做是值得赞赏的。

0 投票
1 回答
1179 浏览

plugins - HP Quality Center Status 插件 Hudson 或 Sonar

有没有人知道 Hudson 或 Sonar 的插件连接到 HP Quality Center 并检索项目中打开的缺陷的状态?

0 投票
2 回答
2604 浏览

delphi - 哈德逊的 dunit 测试结果消息

我使用Hudson作为 Delphi 2010 项目的 CI 服务器。XMLTestRunner.pas 单元将 DUnit 测试结果写入一个 xml 文件,hudson xUnit 插件使用该文件来报告测试结果。xUnit 插件显示失败但没有消息:

在“发布测试工具结果报告”的 hudson 项目配置中,我选择“NUnit-Version N/A (default)”作为测试工具,因为列表中没有 dunit 选项并且 xml 文件看起来类似于 nunit 格式:

在 hudson 配置中还有一个“自定义工具”选项,我必须在其中指定一个“自定义样式表”,但我不知道如何编写这样的样式表(是否有任何文档?)。

在我的带有 boost 测试的 C++ 项目上,所有消息都很好地报告了故障。

0 投票
1 回答
1508 浏览

hudson - Jelly 脚本可用的路径函数?

我希望能够做一些事情,比如将目录文件名与 Hudson/Jenkins 的果冻脚本中的完整路径分开。

例如,如果我/dir1/dir2/dir3/file.ext想(在果冻脚本中)访问/dir1/dir2/dir3file.ext.

jelly 脚本可以使用 getPath() 和 getName() 等 java io 函数吗?

0 投票
2 回答
2327 浏览

continuous-integration - Jenkins scm 用户<->邮件映射。如何通过 cli 转储/恢复/编辑

在设置新的 Hudson/Jenkins 实例时,我遇到了必须手动为 scm 用户提供所有电子邮件地址的问题。

我们正在使用颠覆,我无法从用户名生成邮件地址。我得到了一个映射,但我发现不使用 gui 就无法复制/编辑它。有 20 多个用户变得无聊,我只想编辑一个文件或其他东西。

也许我错过了一些琐碎的东西,比如 scmusers.xml (完全可以完成这项工作)?

0 投票
3 回答
1719 浏览

java - 如何在不修改提交的 pom 的情况下禁用 Hudson 中的特定模块?

我将 Hudson 用于一个巨大的 Java 项目。该项目涉及 2 个团队,这使得中断构建非常明智,并且必须尽快触发单元测试失败或构建中断的报告!为了实现这一点,我们每天使用一个经常触发的连续构建,并且仅在更改的模块及其依赖项上运行“干净测试”目标。

这很好但还不够,构建仍然太慢,我想停用一些在构建过程结束时正在运行集成测试并且与“每小时”工作无关的模块,特别是对于团队工作在 UI 部分。

有没有办法配置 Hudson 以禁用某些模块而不破解 pom 文件?

0 投票
18 回答
192128 浏览

python - 使用 nltk.data.load 加载english.pickle 失败

尝试加载punkt标记器时...

...aLookupError提出:

0 投票
3 回答
2537 浏览

jenkins - 没有所有额外文件夹的 CVS 结帐

我想将 CVS 模块深处的特定文件夹检出到我的 Hudson / Jenkins 工作区中。剥离其他选项(例如修剪、分支等),CVS 命令是...

这会导致我的文件夹包含一个子文件夹“a”,其中包含“b”,并且包含......好吧,你明白了。在您进入文件夹'f'之前,它们都是空的。

我真正想要的是myfolder包含f的内容。CVS 是否支持此功能(没有将 f 定义为模块)?

并且为了奖励业力......我可以让詹金斯将此选项与 .cvsrc 或其他一些机制一起使用吗?

0 投票
3 回答
10983 浏览

php - 使用 Hudson/Jenkins 部署 PHP 项目

目前我在目标机器上使用 Subversion checkout 部署我的 PHP 项目。我使用 Hudson/Jenkins 进行测试和代码分析,但它可以而且应该用于部署吗?如果是这样,怎么做?

0 投票
1 回答
160 浏览

hudson - Hudson-CI 可以通过告诉 ShellCommands 构建请求来自哪里吗?

如果 Hudson 由 perforce 提交(进行快速编译和链接)触发,我希望 Hudson 以一种方式构建,如果从 Hudson http UI 请求则以另一种方式构建(构建项目,所有资产,并创建用于测试的存档.)

我设置了一个 ShellCommand 以在两个构建开始时回显系统环境的全部内容(一种方式触发一个)并且它们之间没有有用的区别。哈德逊有什么东西可以用来区分吗?我真的不想在哈德逊有双倍的工作。