java - 哪个持续集成系统最容易从备份在新机器上重新建立?

标签 java continuous-integration hudson jenkins

我很高兴使用 Hudson(现在的 Jenkins)几年了,我喜欢这个系统的总体态度 - 这确实是一个很好的程序 - 但重点不在我需要运行的一件事上好吧。

如果我们的构建服务器发生问题,并且我们需要从备份磁带(整个工作区)重建它,那么使用 Jenkins 并不容易做到这一点。由于我们本身不依赖任何 Jenkins 特定的功能,因此我正在考虑其他 CI 系统是否有更好的方法。

基本上,当从 git 中提取时,我们有多个彼此相邻的 Eclipse 项目。每个构建条目都指向随后构建的项目之一中的 ant 脚本。我们需要对所使用的 Ant 和 Java 版本具有充分的灵活性。这可以在项目中某处的“启动配置”文件中完美地描述,因此所需要做的就是指向(甚至可能自动发现)所述启动文件。

如果也可以建立历史记录等,那就更好了,但我真的希望能够让作业重新启动并运行。

有什么建议吗?


(注释 2013-02-18:我们将构建过程迁移到 Maven。这极大地简化了 Jenkins 配置,并使这个问题不再那么重要。很高兴知道您是否可以从备份磁带轻松引导 CI 配置或scratch(基于存储在各个pom文件中的信息))

最佳答案

备份 Jenkins 相当容易。

  1. 备份所有配置文件。我有一个 Jenkins 作业,每小时运行一次,扫描任何 config.xml 更改或添加,并在我们的 Perforce 服务器中添加/更新它们。此外,如果我把配置搞得够糟糕,它还使我能够回滚到旧的配置,只需在 Perforce 中进行同步即可。

  2. 备份您的插件。我只是将 .hpi 文件再次备份到 perforce 中。这样我就不必记住我的服务器上有哪些插件,如果我需要重建它。

  3. 备份您的工作区目录。我不这样做,因为我不关心我的 CI 构建,并且我的夜间构建存储在另一台服务器上。我发现 Jenkins 副本非常非常慢,因此我将构建脚本中的所有工件/源代码复制到存档服务器,该服务器已由 IT 每晚备份(它是 san)。唯一的问题是我无法将 Jenkins 作业工件指向单独的位置并让 Jenkins 将它们链接为工件。我还没有找到一个插件可以做到这一点,而且我一直在编写的插件运行速度很慢。但这并不是太糟糕的权衡。

这三个允许我在很短的时间内恢复 Jenkins,但没有日志文件(我真的不需要它们,只要我有输出,tee.exe 就是你的 friend ),如果我的服务器死机的话。

关于java - 哪个持续集成系统最容易从备份在新机器上重新建立?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6291530/

相关文章:

java - null是引用类型,是String引用还是Object引用?

java - 我们如何从不同的包中读取多个属性文件

kubernetes - Helm 升级不会拉新容器

nginx - 如何让 Drone.io 在特定路径上运行?

maven-2 - 如果发生单元测试失败,Maven 报告插件不会执行

svn - 通过 Hudson 发送 Subversion 更改日志信息

java - JTable 行数仅具有默认值(4 行)

java - Java 方法中 byte[] 和 byte ... 的区别

Jenkins 在分支的特定提交消息上触发构建

continuous-integration - 在 Hudson 或 Jenkins 中,如何恢复已删除的构建?