12

我们当前的设置包括一个主控控制多个从机。通常,master会根据list向slave发布测试脚本。哪台机器完成脚本或空闲,它将继续列表。所有这些都针对同一个构建进行了测试。

我们正在朝着 CI 的方向发展,并希望做一些类似于我们当前计划的事情。我认为它的工作方式与主机构建的方式相同,然后分发给从机进行测试。这将如何完成?

编辑:只是为了澄清我的立场,我以前没有使用过 Jenkins,因此缺乏相关知识。在让我被遗忘之前,我只需要有人给我指出正确的方向,而不是要求用勺子喂食的解决方案。

4

2 回答 2

16

由于您不接受海德的回复,我假设您正在寻找更详细的答案。首先,如果您是 Jenkins 新手,我强烈推荐Jenkins:权威指南。Jenkins 使用起来并不难,但很难上手。这本书提供了一个很好的指导,从一开始就进入了运行 Jenkins 安装的一些更复杂的部分。现在回答你的问题。Jenkins 允许您快速尝试,而无需真正“安装”它,因此请按照此处进行操作。您还需要访问第二台计算机来制作临时从站(不用担心,没有真正的安装,所以只需使用同事的计算机)。

这些说明看起来很长,但这只是因为我正在走每一步。这不会花费太多时间。此外,请随时单击 Jenkins 中所有字段旁边的小问号。顺便说一句,当我引用某些内容时,请输入引号内的内容,而不是引号本身。

  1. 转到Meet Jenkins并向下滚动到 Launch 按钮以启动 Jenkins,而无需安装任何东西。
  2. http://localhost:8080/。看!詹金斯跑了!
  3. 在左侧,单击Manage Jenkins,然后单击Manage Nodes项。
  4. 在左侧,单击新建节点。将其命名为“Foo”,选择“Dumb Slave”,然后单击“确定”。
  5. 将“# of executors”设置为 1(这是您希望此从站同时运行的构建数)。
  6. 将“Remote FS root”设置为“c:\jenkins”或“/tmp”(这将在从机上创建一些文件,因此请使用具有写权限的目录)。
  7. 将“标签”设置为“测试者”
  8. 将“启动方法”设置为“通过 Java Web Start 启动从代理”(您可能不想在生产中这样做,但它可以让我们快速启动从代理)。
  9. 点击保存
  10. 点击左上角的Jenkins返回主页面。
  11. 点击左侧的新建作业。
  12. 将作业命名为“My build”并选择“free-style software project”并单击 OK。
  13. 检查Restrect 可以在哪里运行该项目并为标签键入“master”(它甚至应该自动完成)。这使得构建只在主服务器上运行。
  14. 在底部单击Add build step
  15. 如果你的master(当前机器)是Windows机器,选择“Execute Windows batch command”,否则选择“Execute shell”。
  16. 无论哪种方式,对于命令类型“echo Building”。这不是必需的,但它可以让您看到构建确实做了您告诉它做的事情。
  17. 在屏幕底部,单击保存
  18. 您现在应该位于“Project My Build”页面。单击左侧的立即构建链接。由于构建几乎没有做任何事情,它几乎立即完成。历史记录中出现一个带有蓝色圆圈的条目,表示构建成功。
  19. 返回 Jenkins 主屏幕并添加一个New Job
  20. 将此命名为“我的测试”,使其成为另一个“自由式软件项目”,然后单击“确定”。
  21. 再次,选中“限制此项目可以运行的位置”,但将标签设为“测试者”(同样,它应该自动完成)。
  22. 向下滚动并再次单击添加构建步骤。根据从属计算机(例如,您同事的计算机)是什么,选择“Windows 批处理”或“shell”。
  23. 输入“回声测试”
  24. 点击底部的保存。
  25. 现在是有趣的部分。转到您的另一台计算机(或告诉同事他们的前灯已打开并使用他们的计算机)。打开网络浏览器并转到 http:// your-masters-ip-address :8080/
  26. 单击管理 Jenkins,然后单击管理节点
  27. 单击Foo,然后单击启动按钮。单击任何安全/“您确定”警告,您应该会看到一个小窗口,显示 Jenkins 已连接。现在你的奴隶正在运行。
  28. 返回您的主计算机,转到您的 Jenkins 主屏幕,然后单击构建列表中的我的测试
  29. 在左侧,单击立即构建。这将需要更长的时间,因为它必须联系从属服务器并分出工作,但它应该完成并将构建添加到历史记录中。
  30. 单击构建历史记录中的条目。然后,在左侧,单击Console Output
  31. 日志应该说构建是在 Foo 上远程执行的,并且有 echo 语句。呜呼!我们现在可以进行远程构建。
  32. 最后,我们将构建链接在一起。导航回到“我的构建”,然后单击左侧的配置。
  33. 在 Post-build Actions 部分,单击Add post-build action,然后选择“Build other projects”。在字段中输入“我的测试”(它应该自动完成)。单击保存。
  34. 转到 Jenkins 主屏幕,然后单击“我的构建”右侧的时钟/播放图标。如果您仔细观察,您可能会看到作业出现在左侧的“Build Queue”或“Build Executor Status”中。
  35. 等待一分钟左右,然后刷新页面,您应该会看到两个构建更新的“最后一次成功”时间。云应该散开,你应该听到天使的歌声,但暂时不要庆祝。

你现在有一个 master 做“build”,一个 slave 做“test”,一个 build 触发了测试。您可以添加更多从属服务器,只要它们具有“tester”标签,构建服务器就会自动分发。您还可以在构建之后进行许多测试,并让构建触发所有这些测试。这就是所有简单的事情,需要一些麻烦的事情是让 Jenkins 运行您的构建和测试。从小处着手,逐步向上。哦,说真的,去买我链接的那本书(它可以在死树和无 DRM 电子书中获得,不,我与 O'Reilly 或作者没有任何联系,它只是一本非常有用的书)所以你对 Jenkins 能做什么以及如何最好地适应你的系统和你想要什么有一个想法。

于 2012-10-18T18:02:33.243 回答
3

你是这个意思吗:

  1. 转到从节点配置,并给从节点适当的标签,例如“unittest”。对您想要进行单元测试的所有从属重复此操作(请注意,如果需要,从属可以有许多标签)。

  2. 转到作业配置,勾选“限制此作业可以运行的位置”,在此处键入“unittest”。

还要阅读这些领域的帮助文本!

对于更高级/复杂的 CI 设置,如果您想参数化作业可以运行的位置,还可以查看节点标签参数插件。

于 2012-10-15T22:03:57.057 回答