resources - Jenkins 中的资源管理外部节点以进行测试

标签 resources jenkins external nodes jenkins-plugins

我的问题是我的代码需要重新启动节点。我有许多需要在重新启动的节点上执行的长时间运行的 Jenkins 测试作业。

我现有的解决方案是在 Jenkins 中定义多台具有相同标签 (TestLable) 的“代理”机器,每台机器有 1 个执行程序。我将所有测试作业绑定(bind)到标签 (TestLable)。在测试执行脚本中,我检测到 Jenkins 机器(Jenkins env.NODE_NAME)并使用它来了解测试应该使用的物理物理机器。

有人知道更好的解决方案吗?

上面的方法可行,但我需要定义大量可能不需要的“节点/机器”。我想要的是一个能够为 Jenkins 作业授予 token 的插件。这样,作业就不会在 Jenkins 执行程序之前执行,并且 token 是免费的。 token 应该是一个字符串,以便我的测试作业可以使用它来了解它可以使用哪个外部节点。

最佳答案

我们已经编写了自己的调度程序,在启动 Jenkins 节点之前分配内容。可能有更好的解决方案 - 但这主要适用于我们。我还没有遇到可以处理不同硬件资源的复杂分配的现成调度程序。我们有 n 个盒子类型,分配给 n 个构建类型。

我们拥有的一些构建类型在不破坏所有持久数据的情况下不兼容——这可能是必需的,因为它需要很长时间才能收集。一些工作需要这些硬件类型的组合。我们将详细信息存储在数据库中,然后使用业务逻辑来确定它是如何分配的。我们经常发现特定的工作类型需要额外的业务逻辑或额外的数据字段来满足他们的特定要求。

因此,最好的方法可能是使用您自己选择的语言编写您自己的调度程序,这会考虑到您的特定需求。

关于resources - Jenkins 中的资源管理外部节点以进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10950439/

相关文章:

mysql - 使用外部mysql数据库

java - 基于两列对大文件进行排序

qt - qmake未调用资源编译

python - 通过 jenkins 将参数传递给 shell 脚本时出现问题

Android:在没有 Activity 或 Context 引用的情况下访问资源

git - Jenkins git 插件 : How to configure different fetch and push git remotes?

symfony1 - Symfony 1.4 和 Jenkins?

javascript - 如何将 Vue 数据移动到外部文件?

Java资源,返回空指针

css - 网站如何隐藏页面样式表?