Bird
Raised Fist0
Jenkinsdevops~20 mins

Branch discovery configuration in Jenkins - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Branch Discovery Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
1:30remaining
Understanding Branch Discovery in Jenkins Multibranch Pipeline

What is the primary purpose of the Branch Discovery trait in Jenkins Multibranch Pipeline jobs?

ATo automatically find and create jobs for branches in the source repository
BTo delete branches from the source repository after build completion
CTo merge all branches into the main branch before building
DTo restrict builds only to the default branch
Attempts:
2 left
💡 Hint

Think about how Jenkins finds branches to build automatically.

💻 Command Output
intermediate
1:30remaining
Effect of Branch Discovery Setting on Job Creation

Given a Jenkins Multibranch Pipeline configured with Branch Discovery trait set to Discover branches that are also filed as PRs, what will Jenkins do when scanning the repository?

ACreate jobs only for the default branch
BCreate jobs for all branches regardless of pull requests
CCreate jobs only for branches that have open pull requests
DCreate jobs for branches without any pull requests
Attempts:
2 left
💡 Hint

Focus on the meaning of 'also filed as PRs'.

❓ Configuration
advanced
2:00remaining
Configuring Branch Discovery to Exclude Certain Branches

Which configuration snippet correctly excludes branches named feature/temp-* from being discovered in Jenkins Multibranch Pipeline?

AAdd a <code>Filter by name (with wildcards)</code> trait with pattern <code>feature/temp-*</code> and set to exclude
BAdd a <code>Filter by name (with wildcards)</code> trait with pattern <code>feature/temp-*</code> and set to include
CAdd a <code>Branch Discovery</code> trait with pattern <code>feature/temp-*</code> to include only those branches
DAdd a <code>Pull Request Discovery</code> trait with pattern <code>feature/temp-*</code> to exclude those branches
Attempts:
2 left
💡 Hint

Think about how to exclude branches by name using traits.

❓ Troubleshoot
advanced
2:00remaining
Troubleshooting Missing Branches in Jenkins Multibranch Pipeline

You notice that some branches are not appearing as jobs in your Jenkins Multibranch Pipeline scan. Which of the following is the most likely cause?

AThe Jenkinsfile is missing in the root of the repository
BBranch Discovery trait is configured to discover only branches with open pull requests
CThe repository URL is incorrect
DJenkins server is offline
Attempts:
2 left
💡 Hint

Consider how Branch Discovery settings affect which branches are found.

🔀 Workflow
expert
3:00remaining
Optimizing Branch Discovery for Large Repositories

You manage a Jenkins Multibranch Pipeline for a large repository with hundreds of branches. To reduce load, you want Jenkins to discover only branches that have been updated in the last 7 days. Which approach best achieves this?

AUse the <code>Filter by name (with wildcards)</code> trait to exclude old branches
BUse the <code>Suppress automatic SCM triggering</code> option and trigger builds manually
CConfigure Branch Discovery to include only branches matching a date-based pattern
DUse a custom script in the Jenkinsfile to skip builds for branches not updated in 7 days
Attempts:
2 left
💡 Hint

Think about how to control build execution based on branch update time.

Practice

(1/5)
1.

What is the main purpose of branch discovery in Jenkins?

easy
A. To merge branches automatically before building
B. To manually select branches for building
C. To automatically find and build all branches in a repository
D. To delete old branches from the repository

Solution

  1. Step 1: Understand branch discovery concept

    Branch discovery is designed to find all branches automatically in a source code repository.
  2. Step 2: Identify the purpose in Jenkins

    Jenkins uses branch discovery to keep builds updated without manual intervention.
  3. Final Answer:

    To automatically find and build all branches in a repository -> Option C
  4. Quick Check:

    Branch discovery = automatic branch finding [OK]
Hint: Branch discovery means Jenkins finds branches automatically [OK]
Common Mistakes:
  • Thinking branch discovery requires manual branch selection
  • Confusing branch discovery with branch deletion
  • Assuming branch discovery merges branches
2.

Which strategyId value in Jenkins branch discovery configuration finds all branches including PRs?

easy
A. 4
B. 2
C. 1
D. 3

Solution

  1. Step 1: Recall strategyId meanings

    In Jenkins, strategyId 3 means discover all branches including pull requests.
  2. Step 2: Match strategyId to description

    StrategyId 1 is for only branches, 2 is for branches and PRs from origin, 3 includes all branches and PRs, 4 is for PRs only.
  3. Final Answer:

    3 -> Option D
  4. Quick Check:

    strategyId 3 = all branches + PRs [OK]
Hint: strategyId 3 includes all branches and PRs [OK]
Common Mistakes:
  • Confusing strategyId 1 with including PRs
  • Using strategyId 4 which only finds PRs
  • Assuming strategyId 2 includes PRs
3.

Given this Jenkins branch discovery snippet:

{"strategyId": 1}

Which branches will Jenkins discover?

medium
A. Only branches that are not pull requests
B. All branches including pull requests
C. Only pull request branches
D. No branches will be discovered

Solution

  1. Step 1: Understand strategyId 1 meaning

    StrategyId 1 means discover only branches, excluding pull requests.
  2. Step 2: Apply to the snippet

    The snippet uses strategyId 1, so Jenkins finds only normal branches, not PRs.
  3. Final Answer:

    Only branches that are not pull requests -> Option A
  4. Quick Check:

    strategyId 1 = branches only [OK]
Hint: strategyId 1 excludes PRs, finds only branches [OK]
Common Mistakes:
  • Assuming strategyId 1 includes PRs
  • Thinking strategyId 1 finds no branches
  • Confusing strategyId 1 with strategyId 3
4.

You configured Jenkins with {"strategyId": 5} for branch discovery. What is the likely result?

medium
A. Jenkins discovers all branches and PRs correctly
B. Jenkins throws a configuration error or ignores the setting
C. Jenkins discovers only pull requests
D. Jenkins discovers no branches but builds anyway

Solution

  1. Step 1: Check valid strategyId values

    Valid strategyId values are 1, 2, 3, and 4. 5 is invalid.
  2. Step 2: Predict Jenkins behavior on invalid strategyId

    Jenkins will likely throw an error or ignore the invalid value, causing no discovery.
  3. Final Answer:

    Jenkins throws a configuration error or ignores the setting -> Option B
  4. Quick Check:

    Invalid strategyId = error or ignore [OK]
Hint: Use only valid strategyId 1-4 to avoid errors [OK]
Common Mistakes:
  • Assuming strategyId 5 works like 3 or 4
  • Expecting Jenkins to discover branches anyway
  • Ignoring configuration errors
5.

You want Jenkins to build only branches that start with feature/ and ignore others. Which branch discovery configuration should you use?

hard
A. Use {"strategyId": 1} with an additional branch filter for feature/*
B. Use {"strategyId": 3} without any filters
C. Use {"strategyId": 2} and disable branch filtering
D. Use {"strategyId": 4} with a filter for feature/*

Solution

  1. Step 1: Choose strategyId for branches only

    StrategyId 1 discovers only branches (excluding PRs), suitable for filtering branches.
  2. Step 2: Apply branch filter for prefix

    Adding a filter for branches starting with 'feature/' limits builds to those branches only.
  3. Final Answer:

    Use {"strategyId": 1} with an additional branch filter for feature/* -> Option A
  4. Quick Check:

    strategyId 1 + filter = feature branches only [OK]
Hint: Combine strategyId 1 with branch filter for prefix [OK]
Common Mistakes:
  • Using strategyId 3 without filters builds all branches and PRs
  • Disabling filters causes all branches to build
  • Using strategyId 4 only finds PRs, not branches
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