Bird
Raised Fist0
Jenkinsdevops~10 mins

What is Continuous Delivery vs Continuous Deployment in Jenkins - Visual Explanation

Choose your learning style10 modes available
Process Flow - What is Continuous Delivery vs Continuous Deployment
Code Commit
↓
Automated Build & Test
↓
Continuous Delivery?
No→Stop: Manual Approval Needed
Yes↓
Deploy to Staging
↓
Continuous Deployment?
No→Wait for Manual Deploy
Yes↓
Deploy to Production
↓
Monitor & Feedback
Shows the flow from code commit through build and test, then either stopping for manual approval (Continuous Delivery) or automatically deploying to production (Continuous Deployment).
Execution Sample
Jenkins
pipeline {
  agent any
  stages {
    stage('Build & Test') {
      steps { echo 'Building and Testing...' }
    }
    stage('Deploy') {
      steps { echo 'Deploying...' }
    }
  }
}
A simple Jenkins pipeline that builds, tests, and deploys code automatically.
Process Table
StepActionConditionResultNext Step
1Code committed to repositoryN/ATrigger pipelineBuild & Test stage
2Build & Test stage runsBuild and tests pass?YesCheck Continuous Delivery setting
3Continuous Delivery enabled?NoStop: Manual Approval NeededEnd
4Manual approval givenN/ADeploy to stagingCheck Continuous Deployment setting
5Continuous Deployment enabled?NoWait for manual deploy to productionEnd
6Manual deploy triggeredN/ADeploy to productionMonitor & Feedback
7Monitor & FeedbackN/ACollect metrics and logsEnd
💡 Pipeline ends after deployment and monitoring steps complete or waits for manual actions depending on settings.
Status Tracker
VariableStartAfter Step 2After Step 3After Step 4After Step 5Final
BuildStatusN/APassPassPassPassPass
ManualApprovalNoNoNoYesYesYes
DeployToProdNoNoNoNoNoYes or No depending on deployment
Key Moments - 3 Insights
Why does the pipeline pause after build and test in Continuous Delivery?
Because Continuous Delivery requires manual approval before deploying to production, as shown in step 3 of the execution table.
What happens if Continuous Deployment is not enabled after staging deployment?
The pipeline waits for a manual deploy to production, as shown in step 5, so deployment is not automatic.
How does Continuous Deployment differ from Continuous Delivery in automation?
Continuous Deployment automates deployment to production without manual approval, unlike Continuous Delivery which pauses for approval (steps 3 and 5).
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, at which step does the pipeline wait for manual approval in Continuous Delivery?
AStep 5
BStep 3
CStep 2
DStep 7
💡 Hint
Check the 'Result' column for 'Pipeline pauses for manual approval' in the execution table.
According to the variable tracker, what is the value of ManualApproval after step 4?
AYes
BPending
CNo
DN/A
💡 Hint
Look at the ManualApproval row and the After Step 4 column in the variable tracker.
If Continuous Deployment is enabled, what changes in the execution table after step 4?
APipeline waits for manual deploy to production
BPipeline stops after staging
CPipeline deploys automatically to production
DPipeline skips build and test
💡 Hint
Refer to step 5 and 6 in the execution table about Continuous Deployment enabled condition.
Concept Snapshot
Continuous Delivery means code is built, tested, and ready to deploy but waits for manual approval before production.
Continuous Deployment automates deployment to production immediately after passing tests.
Both use automated build and test pipelines.
Manual approval is the key difference.
Jenkins pipelines can implement both by adding or skipping approval steps.
Full Transcript
Continuous Delivery and Continuous Deployment are two ways to automate software release. In Continuous Delivery, after code is committed, Jenkins runs build and tests. If they pass, the pipeline pauses and waits for a person to approve before deploying to production. This ensures control over when changes go live. In Continuous Deployment, the pipeline skips manual approval and automatically deploys to production after tests pass. Both approaches use automation to build and test code, but differ in deployment automation. The execution table shows each step: code commit triggers build and test, then either manual approval or automatic deployment happens. Variables like ManualApproval track if approval is given. This helps teams deliver software faster while balancing safety and control.

Practice

(1/5)
1. What is the main difference between Continuous Delivery and Continuous Deployment?
easy
A. Continuous Delivery only builds code, Continuous Deployment only tests code.
B. Continuous Delivery deploys every change automatically, Continuous Deployment requires manual approval.
C. Continuous Delivery requires manual approval before production deployment, Continuous Deployment does not.
D. Continuous Delivery and Continuous Deployment are exactly the same.

Solution

  1. Step 1: Understand Continuous Delivery

    Continuous Delivery automates preparing the software for release but waits for a manual step to deploy to production.
  2. Step 2: Understand Continuous Deployment

    Continuous Deployment automates the entire process, including automatic deployment to production without manual approval.
  3. Final Answer:

    Continuous Delivery requires manual approval before production deployment, Continuous Deployment does not. -> Option C
  4. Quick Check:

    Manual approval = Continuous Delivery [OK]
Hint: Manual step means Continuous Delivery, no manual means Continuous Deployment [OK]
Common Mistakes:
  • Confusing which process needs manual approval
  • Thinking both deploy automatically
  • Mixing build and deploy steps
2. Which Jenkins pipeline step is typically used to pause for manual approval in Continuous Delivery?
easy
A. input
B. deploy
C. build
D. test

Solution

  1. Step 1: Identify Jenkins step for manual pause

    The input step in Jenkins pipeline pauses the pipeline and waits for user approval.
  2. Step 2: Confirm other steps roles

    deploy runs deployment, build compiles code, test runs tests, none pause for approval.
  3. Final Answer:

    input -> Option A
  4. Quick Check:

    Manual approval step = input [OK]
Hint: Pause for approval uses 'input' step in Jenkins [OK]
Common Mistakes:
  • Choosing deploy as manual step
  • Confusing build or test with approval
  • Not knowing Jenkins pipeline steps
3. Given this Jenkins pipeline snippet for Continuous Delivery:
stage('Deploy to Prod') {
  steps {
    input 'Approve deployment?'
    sh 'deploy.sh'
  }
}

What happens when this pipeline reaches the Deploy to Prod stage?
medium
A. The pipeline pauses and waits for manual approval before running deployment.
B. The pipeline fails with a syntax error.
C. The pipeline skips deployment and ends.
D. The deployment script runs immediately without pause.

Solution

  1. Step 1: Analyze the input step in the stage

    The input 'Approve deployment?' pauses the pipeline and waits for a user to approve before continuing.
  2. Step 2: Understand what happens after approval

    After approval, the shell script deploy.sh runs to deploy the application.
  3. Final Answer:

    The pipeline pauses and waits for manual approval before running deployment. -> Option A
  4. Quick Check:

    input step causes pause = The pipeline pauses and waits for manual approval before running deployment. [OK]
Hint: input step pauses pipeline until approval [OK]
Common Mistakes:
  • Assuming deploy runs immediately
  • Thinking pipeline skips deployment
  • Confusing syntax error with input step
4. You have a Jenkins pipeline intended for Continuous Deployment but it includes this code:
stage('Deploy') {
  steps {
    input 'Approve deployment?'
    sh 'deploy.sh'
  }
}

What is the problem if you want full Continuous Deployment?
medium
A. The pipeline syntax is invalid and will fail.
B. The input step causes manual approval, breaking full automation.
C. The deploy.sh script is missing required parameters.
D. The stage name should be 'Continuous Deployment' instead of 'Deploy'.

Solution

  1. Step 1: Identify manual approval in pipeline

    The input step pauses for manual approval, which is not allowed in full Continuous Deployment.
  2. Step 2: Understand Continuous Deployment automation

    Continuous Deployment requires no manual steps; every change deploys automatically.
  3. Final Answer:

    The input step causes manual approval, breaking full automation. -> Option B
  4. Quick Check:

    Manual approval breaks Continuous Deployment [OK]
Hint: No manual steps allowed in Continuous Deployment [OK]
Common Mistakes:
  • Thinking syntax error causes failure
  • Assuming deploy.sh script is the problem
  • Confusing stage name with functionality
5. You want to convert a Jenkins pipeline from Continuous Delivery to Continuous Deployment. Which change should you make?
hard
A. Rename the pipeline to 'Continuous Deployment' without changing steps.
B. Add more manual approval steps to ensure safety.
C. Change the build step to run tests only.
D. Remove the manual input approval step so deployment runs automatically.

Solution

  1. Step 1: Identify manual approval in Continuous Delivery

    Continuous Delivery pipelines pause for manual approval using the input step.
  2. Step 2: Remove manual approval for Continuous Deployment

    To achieve Continuous Deployment, remove the input step so deployment happens automatically after tests.
  3. Final Answer:

    Remove the manual input approval step so deployment runs automatically. -> Option D
  4. Quick Check:

    Remove manual steps for Continuous Deployment [OK]
Hint: Remove input step to automate deployment fully [OK]
Common Mistakes:
  • Adding manual steps instead of removing
  • Changing unrelated build steps
  • Only renaming pipeline without changing logic
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard