流浪汉促进发展和CI

时间:2015-10-17 20:16:23

标签: jenkins continuous-integration vagrant chef

我想设置以下工作流程。

  • 每个项目都有一个受版本控制的Vagrant文​​件和一个Jenkins作业,可以为每个配置更改构建虚拟机。该虚拟机旨在用于持续集成和开发。
  • 开发人员加入项目。他从Jenkins手中抓取相应的虚拟机,这些虚拟机都已设置完毕并进行了配置。
  • 他运行他下载的虚拟机。所有他的偏好,例如。 .gitconfig .vimrc等已经在该虚拟机的主目录中,即。他使用虚拟机进行编码,而不仅仅是运行和测试。
  • 当Jenkins下的项目构建作业检测到存储库中的更改时,它会将虚拟机作为人工制品从开发人员使用的相同作业中获取并运行构建

这将允许新的开发人员准备好在几分钟内在持续集成服务器使用和部署的完全相同的环境中进行编码,这要归功于虚拟机。

我想我可能会和Vagrant和Chef一起尝试这个,但我不确定他们是不是真的应该像这样使用。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

  

每个项目都有一个受版本控制的Vagrant文​​件和一个Jenkins   为每个配置更改构建虚拟机的作业。   此虚拟机旨在用于连续   整合与发展。

Vagrantfile定义了应用程序环境应该是什么样子。 除了配置(Chef,Puppet,Ansible或Shell ...)之外,您还将为每个正在处理项目的团队成员创建完全相同的VM。 然后,您不需要创建VM并从CI或开发人员使用相同的VM实例。每个人都有自己的环境。

  

开发人员加入项目。他抓住了相应的虚拟   所有设置和配置的Jenkins机器。

每个开发人员都会从同一个Vagrantfile启动在其笔记本电脑上运行的VM - 无需共享虚拟机。

  

当Jenkins的项目构建工作检测到更改时   存储库,它将虚拟机作为人工制品从同一个地方抓取   开发人员使用的工作并运行构建

您可以使用Jenkins vagrant-plugin从与项目对应的相同Vagrantfile启动VM。您不会从现有VM运行该作业。

注意:如果您担心配置会花费太多时间,这就是您说要使用现有VM的原因,您可以创建一个包含所有依赖项的新框并重新打包以将其用作新的基本框< / p>

相关问题