外部测试后更新 Hudson 构建结果状态
我们使用 Hudson 来满足我们的构建/CI 需求。除了单元测试(在构建期间运行)之外,我还有一个运行其他集成测试的暂存环境。基本上,构建发生,然后构建工件被提交到外部系统。我不希望阻止 Hudson 构建来等待集成测试(因为这会将工作站锁定为空闲状态,并阻止它构建其他任何东西)。我想要的是用外部测试的结果更新构建的结果(如果可能的话,将一些日志附加到构建中)。
现在,由于暂存环境与构建系统异步(即其他系统/人员可以提交测试),Hudson 不能只监视构建后立即发生的情况。 Hudson 构建刚刚进入测试队列。因此,我需要通知 Hudson,它无法轮询更新内容。
Hudson 支持这种行为吗?如果支持,我该如何实现?
We use Hudson for our build/CI needs. In addition to unit tests (running during build) I have a staging environment that runs additional integration tests. Basically the build happens and then build artifacts are submitted the external system. I do not wish to block a Hudson build to wait for integration tests (as that locks the station into idle, and prevents it from building anything else). What I want is to update the the result of the build with the result of the external tests (and attach some logs back to the build, if possible).
Now because the staging environment is asynchronous to the build system (i.e. other systems/people can submit tests), Hudson can't be just monitoring what goes on there right after the build. Hudson build just goes into a test queue. So, I need to notify Hudson, it can't be polling something for updates.
Does Hudson support such behaviour, and if so, how can I achieve it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我建议使用 hudson 用户邮件列表 [1]
[1] http://java.净/项目/哈德森/列表/用户/存档
I would suggest using the hudson users mailing list [1]
[1] http://java.net/projects/hudson/lists/users/archive
要解决异步等待问题,您可以使用带有身份验证令牌的构建触发,并在脚本中使用它。
构建触发器部分有一个远程构建触发器(例如从脚本),选择该选项后,您可以输入身份验证令牌(其中包含来自您的描述性文本)问题)。
因此,您可以从脚本远程触发构建,即将其作为集成测试脚本的一部分,并使用此身份验证令牌触发构建作业。
..
您可以有一个仅用于结果收集的下游项目,该项目集成了各种测试的结果并将其报告给主站并将它们全部聚合。可以使用身份验证令牌触发该项目,或者如果有单个集成测试作业,您可以将其作为下游项目绑定。
To solve the asynchronous wait issue, you can use the build triggering with an authentication token, and use it in a script.
The Build Triggers section has a Trigger Builds Remotely (e.g. from scripts), which when selected allows you to enter an Authentication Token (which has the descriptive text from your question).
You can thus, remotely trigger the build from a script, i.e., have it as part of the integration test script and trigger the build job using this authentication token.
..
You can have a downstream project just for result collection that integrates the results from various tests and report it to the master and aggregate them all. This project can be triggered using the authentication token, or if there is a single integration test job, you can tie it up as a downstream project.