我们想为我们的项目设置一个持续集成(CI)服务。CI服务应该控制项目生命周期的各个方面,包括部署。
也就是说,我们希望CI代理在每次迭代时都采用一个干净的系统(特别是Ubuntu Server),在其中部署我们的项目并运行测试。
我们可能会从头开始自己编写CI服务,因为我们的生态系统很不寻常。问题是:如何为每次CI迭代有效地提供干净的平板系统?
项目部署会安装一些Debian软件包,配置多个nginx站点,并在系统范围的特定于实现语言的软件包管理器(LuaRocks)中安装一些软件包。没有比这更令人讨厌的了(我相信)。因此,比起确保绝对的隔离和整洁,能够快速设置干净的平板(在现代硬件上在一分钟内,更快,更好)更为重要。
我看到两种方法来做我们需要做的事情:
- 要么设立某种监狱(例如lxc,也许)。
- 或安装一些可以做快照的虚拟机并使用它们。
但是目前我没有足够的信息来决定。
您有什么建议?还有其他选择吗?任何特定的工具名称?
注意:CI服务将在Citrix XenServer guest虚拟机中运行。如果价格合理,付费解决方案还可以。(通常,它们在该字段中不合理。)远程CI解决方案不可行。