組建自動化

自動建立定義如何編譯、打包與測試程式碼等軟體組建的過程
(重定向自自动构建

组建自动化(英語:Build automation,又称构建自动化自动化构建構建系統)指自动创建软件组建的一组进程,包括将计算机源代码编译二进制码英语binary code、將二进制码包装软件包以及运行自动化测试

概要

组建自动化原先是通过创建makefile来完成的,如今则主要使用两大类工具完成组建[1]

组建自动化工具(如Make、Rake、Cake、MS build、AntGradleCMake等)
这些工具的主要目的是通过编译和链接源代码等活动来生成组建工件。
组建自动化服务器
这些基于Web的通用工具能够在预定或触发的基础上执行组建自动化实用程序。持续集成是组建自动化服务器的类型之一。

根据自动化程度的不同有如下分类:

组建自动化工具

组建自动化工具允许自动化简单且重复的任务,这些工具会通过以正确的、特定的顺序执行任务并运行每个任务来计算如何达到目标。其又可分为任务导向工具与产品导向工具:任务导向工具用以描述网络在特定集合任务方面的依赖性;产品导向工具则根据其生成的的产品来描述事物[2]

组建自动化服务器

虽然组建服务器早在持续集成服务器出现之前就已存在,但组建服务器(英語:build servers)通常与持续集成服务器(英語:continuous integration servers)在英语上是同义词。组建服务器也可以并入軟體生命週期管理(ALM)工具以及应用发布自动化英语Application release automation(ARA)工具中。

服务器类型

  • 按需自动化On-demand automation):如在命令行界面中运行脚本的用户;
  • 计划自动化Scheduled automation) :如运行每日构建的持续集成服务器;
  • 触发自动化Triggered automation) :如运行每次提交到版本控制系统的构建的持续集成服务器。

分散式組建自動化

自動化是透過許多的編譯器來達成,可能是工具在每一個步驟執行不同的編譯器,或是用分散式編譯[3]。分散式組建流程需要有機器智能,瞭解程式碼的相依性,以便用正確的順序進行分散式組建。

和持續交付和持續整合的關係

組建自動化是朝向持續交付(CD)和DevOps的第一步。組建自動化若結合持續整合(CI)、软件部署應用程式發佈自動化英语application-release automation等程序,可以讓組織漸漸的建立軟件交付的最佳實務[4][具体情况如何?]

好處

在軟體開發專案中,導入組建自動化的好處如下:

  • 要進行持續整合和持續測試英语continuous testing的必要條件
  • 提昇產品品質
  • 加速編譯和連結的處理
  • 消除重複的任務
  • 減少「不良的組建」
  • 消除關鍵人員的相依性
  • 建立組建歷史以及發佈歷史,在調查問題時更方便
  • 因為上述的原因,可以節省時間和金錢[5]

相關條目

參考資料

  1. ^ Ceruzzi, Paul E. A history of Modern computing. The MIT Press. 2003. ISBN 978-0262532037. 
  2. ^ Clark, Mike. Pragmatic Project Automation: How to Build, Deploy, and Monitor Java Apps. The Pragmatic Programmers. 2004. ISBN 978-0974514031. 
  3. ^ Enos, Joe. Automated Builds: The Key to Consistency. InfoQ (C4Media Inc.). 2013 [September 16, 2015]. (原始内容存档于2021-10-22). 
  4. ^ Bashan, Shmuel; Bellagio, David E. Work Item Management with IBM Rational ClearQuest and Jazz: A customization Guide. IBM Press. 2011. ISBN 978-0137001798. 
  5. ^ Archived copy (PDF). [2008-09-19]. (原始内容 (PDF)存档于2008-11-23).