Bird
Raised Fist0
Jenkinsdevops~5 mins

Conditional deployment logic in Jenkins - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is conditional deployment logic in Jenkins?
It is a way to control when and how deployment steps run based on specific conditions, like branch name or build status.
Click to reveal answer
beginner
How can you check the branch name in a Jenkins pipeline to decide deployment?
Use the environment variable 'BRANCH_NAME' inside a 'when' block to run deployment only on certain branches.
Click to reveal answer
intermediate
What Jenkins pipeline syntax allows running steps only if the build is successful?
The 'post' section with 'success' condition or a 'when' block checking 'currentBuild.currentResult == "SUCCESS"'.
Click to reveal answer
beginner
Explain the use of the 'when' directive in Jenkins pipelines.
The 'when' directive lets you specify conditions to decide if a stage should run, like checking branch, environment variables, or build results.
Click to reveal answer
beginner
How do you implement a conditional deployment only on the 'main' branch in a declarative Jenkins pipeline?
Use a 'when { branch 'main' }' block inside the deployment stage to run it only when building the 'main' branch.
Click to reveal answer
Which Jenkins pipeline directive is used to run a stage only on a specific branch?
Aenvironment
Bwhen
Cpost
Dagent
How do you check if the build was successful before deploying in Jenkins pipeline?
AUse 'agent any'
BUse 'when { branch "main" }'
CUse 'environment { BUILD_STATUS = "SUCCESS" }'
DUse 'post { success { ... } }'
What environment variable commonly holds the branch name in Jenkins pipelines?
ABRANCH_NAME
BBUILD_ID
CJOB_NAME
DDEPLOY_ENV
Which of these is NOT a valid condition for the 'when' directive in Jenkins declarative pipelines?
Abranch
Bsuccess
Cagent
Denvironment
What happens if the 'when' condition in a Jenkins stage is false?
AThe stage is skipped
BThe pipeline pauses
CThe pipeline fails
DThe stage runs anyway
Describe how you would set up a Jenkins pipeline to deploy only when building the 'main' branch and the build is successful.
Think about combining branch check and build status in pipeline syntax.
You got /3 concepts.
    Explain the purpose of conditional deployment logic in Jenkins and why it is useful.
    Consider real-life situations where you only want to deploy safe and correct code.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of using a when block in a Jenkins pipeline?
      easy
      A. To define environment variables for the pipeline
      B. To run a stage only if certain conditions are met
      C. To specify the agent where the pipeline runs
      D. To declare pipeline parameters

      Solution

      1. Step 1: Understand the role of when in Jenkins

        The when block controls whether a stage runs based on conditions.
      2. Step 2: Compare options with when usage

        Only To run a stage only if certain conditions are met describes conditional execution, which matches when functionality.
      3. Final Answer:

        To run a stage only if certain conditions are met -> Option B
      4. Quick Check:

        when controls stage execution = A [OK]
      Hint: Remember: when means "only if" for stages [OK]
      Common Mistakes:
      • Confusing when with environment setup
      • Thinking when sets agents
      • Assuming when declares parameters
      2. Which of the following is the correct syntax to run a stage only on the 'main' branch in a declarative Jenkins pipeline?
      easy
      A. when { branch is 'main' }
      B. when { branch == 'main' }
      C. when { branch 'main' }
      D. when { branch equals 'main' }

      Solution

      1. Step 1: Recall correct when syntax for branch condition

        The correct syntax uses branch 'main' inside when block.
      2. Step 2: Check each option's syntax

        Only when { branch 'main' } matches Jenkins declarative syntax; others use invalid expressions.
      3. Final Answer:

        when { branch 'main' } -> Option C
      4. Quick Check:

        Correct branch syntax = C [OK]
      Hint: Use branch 'name' exactly inside when [OK]
      Common Mistakes:
      • Using comparison operators inside when
      • Writing invalid expressions like 'branch =='
      • Confusing Groovy syntax with declarative syntax
      3. Given this Jenkins pipeline snippet, what will happen if the branch is 'develop'?
      stage('Deploy') {
        when {
          branch 'main'
        }
        steps {
          echo 'Deploying to production'
        }
      }
      medium
      A. The stage will be skipped and nothing prints
      B. The stage will run and print 'Deploying to production'
      C. The pipeline will fail with a syntax error
      D. The stage will run but print nothing

      Solution

      1. Step 1: Analyze the when condition

        The stage runs only if branch is 'main'. Here branch is 'develop', so condition fails.
      2. Step 2: Determine stage behavior on condition failure

        When when condition fails, the stage is skipped and no steps run.
      3. Final Answer:

        The stage will be skipped and nothing prints -> Option A
      4. Quick Check:

        Branch mismatch skips stage = A [OK]
      Hint: If branch doesn't match when, stage skips silently [OK]
      Common Mistakes:
      • Assuming stage runs anyway
      • Expecting error on branch mismatch
      • Thinking stage runs but prints nothing
      4. Identify the error in this Jenkins pipeline snippet that tries to deploy only if environment variable DEPLOY is 'true':
      stage('Deploy') {
        when {
          environment DEPLOY == 'true'
        }
        steps {
          echo 'Deploying application'
        }
      }
      medium
      A. The stage name cannot be 'Deploy'
      B. The when block must be inside steps
      C. The echo command is not allowed in steps
      D. The environment condition is invalid syntax

      Solution

      1. Step 1: Check when syntax for environment variable

        The correct syntax uses environment name: 'DEPLOY', value: 'true' or expression blocks, not direct comparison.
      2. Step 2: Identify invalid usage

        Using environment DEPLOY == 'true' is invalid and causes syntax error.
      3. Final Answer:

        The environment condition is invalid syntax -> Option D
      4. Quick Check:

        Invalid environment condition syntax = D [OK]
      Hint: Use correct when { environment name: 'VAR', value: 'val' } syntax [OK]
      Common Mistakes:
      • Writing direct comparisons inside when
      • Placing when inside steps
      • Misusing stage names
      5. You want to deploy only if the branch is 'release' and the environment variable DEPLOY is 'yes'. Which when block correctly implements this in a declarative Jenkins pipeline?
      hard
      A. when { allOf { branch 'release'; environment name: 'DEPLOY', value: 'yes' } }
      B. when { branch 'release' && environment DEPLOY == 'yes' }
      C. when { branch 'release' environment DEPLOY == 'yes' }
      D. when { anyOf { branch 'release'; environment name: 'DEPLOY', value: 'yes' } }

      Solution

      1. Step 1: Understand combining conditions in when

        Use allOf to require both conditions true simultaneously.
      2. Step 2: Check syntax for branch and environment conditions

        when { allOf { branch 'release'; environment name: 'DEPLOY', value: 'yes' } } correctly uses allOf with branch 'release' and environment name: 'DEPLOY', value: 'yes'.
      3. Step 3: Identify errors in other options

        Options A and C use invalid syntax; D uses anyOf which means either condition, not both.
      4. Final Answer:

        when { allOf { branch 'release'; environment name: 'DEPLOY', value: 'yes' } } -> Option A
      5. Quick Check:

        Use allOf for AND conditions = B [OK]
      Hint: Use allOf to combine multiple when conditions [OK]
      Common Mistakes:
      • Using anyOf instead of allOf
      • Writing invalid combined expressions
      • Misusing environment condition syntax
      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