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.


3 Answers 3


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.

  • Thanks for that explanation. What does "promoting" an artifact mean? Jan 19, 2019 at 0:33
  • 2
    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).
    – JBaruch
    Jan 19, 2019 at 1:05
  • 1
    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
    – Sunil
    Jan 19, 2019 at 14:17
  • 1
    welcome @user1330287! "promoting" can also be referenced as deployment either publishing, but due to different context the term is ambigous: devops.stackexchange.com/questions/4953/…
    – Ta Mu
    Jan 21, 2019 at 13:10

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) and this mixing of terms leads often to confusion in the entire CI/CD process that I've tried to explain here.


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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.