我们在基于 RPM 的 Linux 上发布软件。我们从不同的团队(有些团队不在我们的业务部门)收到许多软件包,这些软件包必须正确升级(将来我们要检查依赖项是否正确)。最近,我们在从业务部门外部交付的软件包升级时遇到了一个错误。现在是时候开始尝试对这类事情进行自动化测试了。
我当时想的是假设安装良好(无论如何,这通常会在功能测试时被发现),然后检查使用前/后脚本的升级是否以与安装相同的方式修改文件。如果不是,则标记为需要审查。
具体来说,我们要检查升级、内核升级等特殊情况、chroot 安装(其中正在运行的内核甚至可能在 chroot 中不可用)等。
我的问题是,有可以做这种事情的软件吗?我搜索了好久,但没找到。
当然,这个自动化过程也会得到包装指南的支持,但由于我们的一些 RPM 来自我们组织之外,我们仍然希望这种后备能够在将来为我们提供保证。
答案1
我认为您问的是一个相当笼统的问题,因此可能会有多种可能的答案。根据个人经验,我推荐的一个选择是詹金斯。
Jenkins 是一个很好的持续集成工具集。 https://wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins 它是一款非常灵活的工具,您可以获得一系列不同的插件。安装/设置非常简单。您可以在自己的机器 linux/windows/... 上安装它,它让您能够控制自动化作业。
您可以将 Jenkins 用于您希望自动化的多种不同任务。 * 定期构建和测试运行(构建错误/管理和构建/测试运行报告插件的良好选择) * 定期备份,运行常规或触发测试 * 检查源代码更新并保持工作区域最新/干净 * 使用 ssh 插件在外部机器上运行自动化任务
过去我曾将它用于项目范围的工作和单个开发人员的任务。
您可以自动化测试设置、rpm 安装,然后以脚本或脚本集的形式进行测试。Jenkins 允许您使用 Web 界面管理作业。作业状态和作业/测试报告可通过 Web 界面浏览。错误或报告以电子邮件或其他方式发送。
进一步阅读……
持续交付: http://en.wikipedia.org/wiki/Continuous_deployment http://www.martinfowler.com/articles/continuousIntegration.html 我以前曾使用过巡航控制和 buildbot,但我发现它们比 Jankins 更有限。
这篇博文似乎与您的问题非常相关: http://www.devops-blog.net/koji/installing-a-rpm-based-build-system Jenkins 和一系列其他工具