项目自动化的类型

您在本章开头看到,用户可以请求运行构建。 用户可以是任何想要触发构建的利益相关者,例如开发人员、QA 团队成员或产品所有者。 例如,我们的朋友 Tom 每当想要编译代码时,都会在他的 IDE 中按下 “编译” 按钮。 按需自动化只是项目自动化的一种类型。 您还可以安排构建在预定义时间或特定事件发生时执行。

按需构建

按需自动化的典型用例是当用户在他或她的机器上触发构建时,如图 1.1 所示。 版本控制系统 (VCS) 管理构建定义和源代码文件的版本控制是常见的做法。 在大多数情况下,用户在命令行上执行脚本,该脚本按预定义的顺序执行任务,例如,编译源代码、将文件从目录 A 复制到目录 B 或组装可交付成果。 通常,这种类型的自动化每天执行多次。

image 2024 03 07 14 39 25 039
Figure 1. 图 1.1 按需构建执行由 VCS 支持的构建定义

触发构建

如果您正在实践敏捷软件开发,您有兴趣接收有关项目运行状况的快速反馈。 您会想知道您的源代码是否可以在没有任何错误的情况下进行编译,或者是否存在由失败的单元或集成测试表明的潜在软件缺陷。 如果代码被签入版本控制,通常会触发这种类型的自动化,如图 1.2 所示。

image 2024 03 07 14 41 09 282
Figure 2. 图 1.2 将文件签入 VCS 触发构建

周期性构建

将计划的自动化视为基于时间的作业调度程序(在基于 Unix 的操作系统的上下文中,也称为 cron 作业)。 它以特定的时间间隔或具体时间运行 - 例如,每天早上 1:00 或每 15 分钟运行一次。 与所有 cron 作业一样,计划的自动化通常在专用服务器上运行。 图 1.3 显示了每天早上 5:00 运行的计划构建。这种自动化对于为项目生成报告或文档特别有用。

实现计划和触发构建的实践通常称为持续集成(CI)。 您将在第 13 章中了解有关 CI 的更多信息。在确定了项目自动化的好处和类型之后,是时候讨论允许您实现此功能的工具了。

image 2024 03 07 14 44 48 932
Figure 3. 图 1.3 每天凌晨 5:00 启动的计划构建