本参考文件描述了目前用于开发软件原型战斗资源分配支持(CORALS)的持续集成(CI)流程。该CI策略是专门为支持研究项目的要求和满足其利益相关者和从业者的需求而制定的。
我们选择了一些原则、技术和最佳实践,以实现软件开发活动的自动化,并使用工具和技术进行了测试,这些都在本文件中作了详细介绍
这个CI战略的积极影响是多方面的:开发团队的生产力提高了,利益相关者有更多的机会获得最新的日常原型构建,应用程序更加稳定,软件开发过程现在有了很好的记录,仅此而已。
在软件开发领域有一个整体的、后敏捷的发展趋势,得到了全世界的组织越来越多的关注,包括加拿大国防部;迎来了DevOps。DevOps这个词是由开发和运行两个词组合而成的。它是几个迭代和增量的自动化开发方法的总称,用于将编码员设计的解决方案更快地过渡到运营社区。它的核心原则之一是赞扬所有从事软件工作的组织应该有一个精心设计的持续集成战略。
将代码编写完成后的软件开发任务自动化有很多好处。从本质上讲,自动化的任务更具有可预测性、可重复性、可靠性和快速性。另外,计算机化的自动化任务可以有副作用的好处,例如自动产生报告供人分析。这些报告可以帮助进一步优化自动化软件工程脚本,通过突出问题以及提供关于正在自动构建、集成、测试、打包和部署的代码的指标。
持续集成策略对于开发者团队尤其重要。一个应用程序代码库的单一贡献者可能不想投入时间和资源来获取、部署、配置和维护运行自动化软件开发任务所需的基础设施,特别是如果他可以从他的开发者工作站运行所有这些任务。但是,当几个人对一个软件的代码库做出贡献时,编译和测试等任务的自动化是非常重要的,不仅可以节省时间,还可以向整个团队提供快速反馈,通过通知编译结果或自动测试执行报告,确认软件是否因某人的修改而损坏。另外,构建过程不会只停留在开发人员的头脑和习惯中,而是在可靠的、可重复的自动化脚本中被预先完全指定,如果按照清洁代码的原则编写,可以被认为是一种文档形式[1]。
本文件的组织结构如下。
第2节介绍了背景,包括对资助这项工作的研究项目的简要描述,以及从功能和架构的角度对CORALS原型的概述。
第3节从高层次上描述了CORALS持续集成策略,同时对启发该策略的每个元素的软件开发最佳实践提供了入门级的解释。
第4节介绍了所选择的、目前用于实施该策略的工具,并介绍了它们在一定程度上的配置。
第5节介绍了结论,包括对当前策略的未来改进建议。