2024-06-16 13:46:17 发布
网友
目前我们的开发人员都使用virtualboxvm的克隆,它配置了一套特定的软件,我们希望在我们的开发堆栈中引入持续集成。在
我们正在考虑使用Jenkins,最好将其配置为执行以下操作:
我很确定我们可以让1-4步工作,我们关心的是第5步和第6步。在
这能实现吗?如果是,怎么办?在
我们也有类似的地方。在
收集结果
为了收集测试结果,您可以利用Vagrant's synced folders,也就是说,在虚拟机上运行测试,该目录与主机同步(本例中Jenkins正在运行)。在
报告测试是否成功
我相信你知道,Jenkins进程只需要退出非零,就可以失败。我们设置测试的方法如下:
vagrant ssh -c 'cd /synced-folder/ && grunt test-report force && npm test'
首先我们使用Grunt收集结果。我们生成了一个XML报告。请注意,我们 force这样即使测试失败,我们也会收集结果。然后我们使用npm test运行测试。npm test进程的退出代码将是用于Jenkins作业的代码,因此如果失败,Jenkins作业也将使用该代码。在
force
npm test
有很多Jenkins插件正是为了处理这种情况而设计的。在
特别是,Jenkins有一个slave executor的基本概念,它为您处理文件复制、远程触发和结果收集(这实际上是Jenkins的核心功能——处理在许多机器上运行大量调度任务的管理开销)。除了启动从机(在您的场景中提供了Vagrant)并告诉Jenkins您的构建应该在那个特定的从机上运行之外,您实际上不需要做任何事情。在
以下是文档的相关入口点:
https://wiki.jenkins-ci.org/display/JENKINS/Distributed+builds
我们也有类似的地方。在
收集结果
为了收集测试结果,您可以利用Vagrant's synced folders,也就是说,在虚拟机上运行测试,该目录与主机同步(本例中Jenkins正在运行)。在
报告测试是否成功
我相信你知道,Jenkins进程只需要退出非零,就可以失败。我们设置测试的方法如下:
首先我们使用Grunt收集结果。我们生成了一个XML报告。请注意,我们
force
这样即使测试失败,我们也会收集结果。然后我们使用npm test
运行测试。npm test
进程的退出代码将是用于Jenkins作业的代码,因此如果失败,Jenkins作业也将使用该代码。在有很多Jenkins插件正是为了处理这种情况而设计的。在
特别是,Jenkins有一个slave executor的基本概念,它为您处理文件复制、远程触发和结果收集(这实际上是Jenkins的核心功能——处理在许多机器上运行大量调度任务的管理开销)。除了启动从机(在您的场景中提供了Vagrant)并告诉Jenkins您的构建应该在那个特定的从机上运行之外,您实际上不需要做任何事情。在
以下是文档的相关入口点:
https://wiki.jenkins-ci.org/display/JENKINS/Distributed+builds
相关问题 更多 >
编程相关推荐