我来自Ops,并且没有较深的软件工程背景。在詹金斯(Jenkins)中,确切的“构建”是什么,为什么命名为“ build”?当我构建一个shell / powershell脚本时,我并没有真正编译任何东西,对吗?那么,詹金斯为什么要“构建”源代码。我认为从源代码到二进制文件的构建是针对编译语言的,除非Jenkis以更通用的方式使用“ build”一词。

请帮助我客观地了解正在发生的事情。

#1 楼

如您所料,构建不一定意味着“编译”。构建是一个从源头创建软件的过程,其中可能包括诸如收集依赖项,进行编译,归档,以任何方式转换代码,还包括测试,部署到不同的环境以及在它们之间推广工件的过程。

评论


感谢您的解释。 “促进”人工产物是什么意思?

–user1330287
19年1月19日,0:33

这是另一个问题:)基本上是根据质量在质量之间通过质量门在环境之间移动它。 (如果有帮助,请不要忘记接受并投票回答答案)。

–JBaruch
19年1月19日,下午1:05

术语“构建”可能是指将源代码转换为可以在计算机上运行的独立表单或表单本身的过程。编译过程是其中的一部分。促进基本上将文件推送到更高的环境Dev-> Stage-> Prod

– Sunil
19年1月19日,14:17



欢迎@ user1330287! “促进”也可以被称为部署或发布,但是由于上下文不同,该术语含糊不清:devops.stackexchange.com/questions/4953/…

– Peter Muryshkin
19年1月21日在13:10

#2 楼

好吧,这里有些术语和术语转移混合了。詹金斯(Jenkins)使用“工作”一词来表示自动化任务,而使用“构建”一词则是指在系统的当前状态下单独执行自动化任务,并可能输入一些变量。传统上,Build是用于生成派生对象的任何过程的替代术语(请参见此处的答案),这些术语的混合通常会导致整个CI / CD流程的混乱,而我试图在此进行解释。

#3 楼

从jenkins的角度理解术语“作业和构建”很重要。

在Jenkins中,用户创建的作业通常是运行自主任务的配置。作业可能是构建/打包软件,创建工件,部署工件,创建帮助文件等任务。此配置可能会不时更改。

每次运行作业时,Jenkins compiles项目工作区中的作业配置以执行定义的步骤。将该作业的每次运行称为构建,每个步骤称为build step。由于工作周围的环境可能会因构建而异,因此在运行期间任何构建都可能Fail(或变为Unstable)。因此,术语-构建。