Answers: <p>As you guessed, <em>build</em> not necessarily means "compile". <em>Building</em> is a process of creating software from sources, which might include stuff like gathering dependencies, compiling, archiving, transforming code in any way, but also testing, deploying to different environments and promoting the artifacts between them.</p>
  
Answers: CC BY-SA 4.0
Answers: 2019-01-19T00:33:03.460Z
Answers: Thanks for that explanation. 
  
  What does "promoting" an artifact mean?
Answers: user1330287
Answers: CC BY-SA 4.0
Answers: 2019-01-19T01:05:40.807Z
Answers: That's another question :) Basically moving it between environments through quality gates based on its quality. (Please don't forget to accept and vote up the answer if it helped).
Answers: JBaruch
Answers: CC BY-SA 4.0
Answers: 2019-01-19T14:17:09.863Z
Answers: The term build may refer to the process by which source code is converted into a stand-alone form that can be run on a computer or to the form itself. The compilation process is one part of it
  
  Promoting basically pushing the files to higher environment Dev-> Stage->Prod
Answers: Sunil
Answers: CC BY-SA 4.0
Answers: 2019-01-21T13:10:32.220Z
Answers: welcome @user1330287! "promoting" can also be referenced as deployment either publishing, but due to different context the term is ambigous: https://devops.stackexchange.com/questions/4953/dealing-with-ambiguity-of-the-terms-publish-vs-deploy
Answers: Ta Mu
Answers: CC BY-SA 4.0
Answers: 2019-01-19T00:29:26.857Z
Answers: 2019-01-19T00:29:26.857Z
Answers: JBaruch
Answers: <p>Well, there is a bit of a mixed terminology here and term transfer. Jenkins is using the word <strong>Job</strong> to mean <em>automation task</em> and <strong>Build</strong> to mean single <em>execution of the automation task</em> at the current state of system and possibly some variables as input. Traditionally a <strong>Build</strong> is a substitute term used for any process that produces <strong>Derived Objects</strong> (see my answer <a href="https://devops.stackexchange.com/a/470/228">here</a>) and this mixing of terms leads often to confusion in the entire CI/CD process that I've tried to explain <a href="https://devops.stackexchange.com/a/4954/228">here</a>.</p>
  
Answers: CC BY-SA 4.0
Answers: 2019-03-11T15:35:47.680Z
Answers: 2019-03-11T15:35:47.680Z
Answers: Jiri Klouda
Answers: <p>It is important to understand the terms <strong>Job</strong> and <strong>Build</strong> from the jenkins standpoint.</p>
  
  <p>In Jenkins, a user creates <strong>job(s) which is typically a configuration for running autonomous tasks</strong>. A job could be a task for building/packaging software, creating artifacts, deploying artifacts, creating help files, etc. This configuration may change from time to time.</p>
  
  <p>Every time you run a job, Jenkins <code>compiles</code> the job configuration inside the project workspace to perform the defined steps. <strong>Each run of this job is called as a build</strong> and each step is called a <code>build step</code>. Since the environment around the job may change from build to build, any build may <code>Fail</code>(or become <code>Unstable</code>) during a run. Thus, the term - Build.</p>
  
Answers: CC BY-SA 4.0
Answers: 2019-03-11T10:05:26.037Z
Answers: 2019-03-12T08:21:12.883Z
Answers: 2019-03-12T08:21:12.883Z
Answers: KatariaA
Body: <p>I'm coming from Ops and I don't have a heavy software engineering background. In Jenkins, what is a "build" exactly and why is it named such? When I build a shell/powershell script, I'm not really compiling anything, am I? Then why is Jenkins "building" the source code. I thought building from source to binary is for compiled languages, unless Jenkis is using the word "build" in a more generic manner.</p>
  
  <p>Please help me understand what's going on objectively. </p>
  
Tags: <jenkins><terminology><build-pipeline><software-engineering>
Title: Jenkins: What is a build?
UserDisplayName: user1330287
ThreadText: # Jenkins: What is a build?
  
  (Asked by: username_0 on 2019-01-18)
  
  I'm coming from Ops and I don't have a heavy software engineering background. In Jenkins, what is a "build" exactly and why is it named such? When I build a shell/powershell script, I'm not really compiling anything, am I? Then why is Jenkins "building" the source code. I thought building from source to binary is for compiled languages, unless Jenkis is using the word "build" in a more generic manner.
  
  Please help me understand what's going on objectively.
  
  **Tags:** jenkins, terminology, build-pipeline, software-engineering
  
  
  ---
  
  ## 3 answers
  
  ### Answer by username_1 on 2019-01-19. Score: 11
  
  As you guessed, *build* not necessarily means "compile". *Building* is a process of creating software from sources, which might include stuff like gathering dependencies, compiling, archiving, transforming code in any way, but also testing, deploying to different environments and promoting the artifacts between them.
  
  > **Comments:**
  > **username_0**: Thanks for that explanation.   What does "promoting" an artifact mean?  
  > **username_1**: That's another question :) Basically moving it between environments through quality gates based on its quality. (Please don't forget to accept and vote up the answer if it helped).  
  > **username_2**: The term build may refer to the process by which source code is converted into a stand-alone form that can be run on a computer or to the form itself. The compilation process is one part of it  Promoting basically pushing the files to higher environment Dev-> Stage->Prod  
  > **username_3**: welcome @username_0! "promoting" can also be referenced as deployment either publishing, but due to different context the term is ambigous: https://devops.stackexchange.com/questions/4953/dealing-with-ambiguity-of-the-terms-publish-vs-deploy  
  
  ---
  
  ### Answer by username_4 on 2019-03-11. Score: 0
  
  Well, there is a bit of a mixed terminology here and term transfer. Jenkins is using the word **Job** to mean *automation task* and **Build** to mean single *execution of the automation task* at the current state of system and possibly some variables as input. Traditionally a **Build** is a substitute term used for any process that produces **Derived Objects** (see my answer [here](https://devops.stackexchange.com/a/470/228)) and this mixing of terms leads often to confusion in the entire CI/CD process that I've tried to explain [here](https://devops.stackexchange.com/a/4954/228).
  
  
  ---
  
  ### Answer by username_5 on 2019-03-11. Score: 0
  
  It is important to understand the terms **Job** and **Build** from the jenkins standpoint.
  
  In Jenkins, a user creates **job(s) which is typically a configuration for running autonomous tasks**. A job could be a task for building/packaging software, creating artifacts, deploying artifacts, creating help files, etc. This configuration may change from time to time.
  
  Every time you run a job, Jenkins `compiles` the job configuration inside the project workspace to perform the defined steps. **Each run of this job is called as a build** and each step is called a `build step`. Since the environment around the job may change from build to build, any build may `Fail`(or become `Unstable`) during a run. Thus, the term - Build.
  
  
  ---
  
  