Bird
Raised Fist0
Jenkinsdevops~10 mins

Branch indexing and scanning in Jenkins - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to trigger branch indexing in a Jenkins Pipeline.

Jenkins
properties([pipelineTriggers([[1]('H/5 * * * *')])])
Drag options to blanks, or click blank then click option'
Acron
BgithubPush
CpollSCM
DtimerTrigger
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'cron' instead of 'pollSCM' triggers a scheduled job but does not specifically trigger branch indexing.
Using 'githubPush' only triggers on GitHub push events, not branch indexing.
Using 'timerTrigger' is not a valid Jenkins trigger.
2fill in blank
medium

Complete the code to scan all branches in a Multibranch Pipeline job.

Jenkins
multibranchPipelineJob('example') {
  branchSources {
    git {
      id('1234')
      remote('https://github.com/example/repo.git')
    }
  }
  [1] {
    cron('H * * * *')
  }
}
Drag options to blanks, or click blank then click option'
AscanTriggers
Bscanners
Ctriggers
DbranchSources
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'triggers' configures build triggers, not branch scanning.
Using 'branchSources' defines the source repositories, not scanning triggers.
Using 'scanners' is not a valid block name.
3fill in blank
hard

Fix the error in the Jenkinsfile to correctly scan branches every 15 minutes.

Jenkins
multibranchPipelineJob('example') {
  scanTriggers {
    cron('[1]')
  }
}
Drag options to blanks, or click blank then click option'
AH/15 * * * *
B*/15 * * * *
C15 * * * *
DH/5 * * * *
Attempts:
3 left
💡 Hint
Common Mistakes
Using '*/15 * * * *' works in standard cron but Jenkins recommends 'H/15' for better load distribution.
Using '15 * * * *' runs only once per hour at minute 15.
Using 'H/5 * * * *' runs every 5 minutes, not 15.
4fill in blank
hard

Fill both blanks to configure branch indexing to exclude branches matching a pattern and to set the scan interval.

Jenkins
multibranchPipelineJob('example') {
  branchSources {
    git {
      remote('https://github.com/example/repo.git')
      [1]('feature/*')
    }
  }
  scanTriggers {
    cron('[2]')
  }
}
Drag options to blanks, or click blank then click option'
AexcludeBranches
BincludeBranches
CH/10 * * * *
DH/30 * * * *
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'includeBranches' instead of 'excludeBranches' changes which branches are scanned.
Using 'H/30 * * * *' scans every 30 minutes, not 10.
Omitting branch exclusion causes all branches to be scanned.
5fill in blank
hard

Fill all three blanks to create a Jenkinsfile snippet that scans branches, includes only 'main' and 'release/*' branches, and triggers scanning every 20 minutes.

Jenkins
multibranchPipelineJob('example') {
  branchSources {
    git {
      remote('https://github.com/example/repo.git')
      [1]('main')
      [2]('release/*')
    }
  }
  scanTriggers {
    cron('[3]')
  }
}
Drag options to blanks, or click blank then click option'
AincludeBranches
BexcludeBranches
CH/20 * * * *
DbranchFilter
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'excludeBranches' instead of 'includeBranches' changes the scanning behavior.
Using 'branchFilter' is not a valid method here.
Using incorrect cron syntax causes scanning to fail or run at wrong intervals.

Practice

(1/5)
1. What is the main purpose of branch indexing in Jenkins Multibranch Pipeline jobs?
easy
A. To manually trigger builds for a single branch
B. To delete old builds from the Jenkins server
C. To automatically discover and build all branches in a repository
D. To configure user permissions for branches

Solution

  1. Step 1: Understand branch indexing concept

    Branch indexing automatically finds all branches in a source code repository for Jenkins to build.
  2. Step 2: Identify its main benefit

    This avoids manual job creation for each branch, saving time and effort.
  3. Final Answer:

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

    Branch indexing = automatic branch discovery [OK]
Hint: Branch indexing means Jenkins finds branches itself [OK]
Common Mistakes:
  • Thinking branch indexing triggers manual builds only
  • Confusing branch indexing with build cleanup
  • Assuming it manages user permissions
2. Which Jenkins job type should you use to enable branch indexing and scanning?
easy
A. Multibranch Pipeline
B. Freestyle project
C. Matrix project
D. External job

Solution

  1. Step 1: Identify job types in Jenkins

    Freestyle and Matrix projects do not support automatic branch discovery.
  2. Step 2: Recognize Multibranch Pipeline features

    Multibranch Pipeline jobs are designed to scan repositories and index branches automatically.
  3. Final Answer:

    Multibranch Pipeline -> Option A
  4. Quick Check:

    Branch indexing requires Multibranch Pipeline job [OK]
Hint: Use Multibranch Pipeline for branch scanning [OK]
Common Mistakes:
  • Choosing Freestyle project which lacks branch scanning
  • Confusing Matrix project with Multibranch Pipeline
  • Selecting External job which is unrelated
3. Given a Multibranch Pipeline job configured to scan every 1 hour, what happens when a new branch is pushed to the repository?
medium
A. Jenkins immediately builds the new branch
B. Jenkins ignores the new branch until manual scan
C. Jenkins deletes the new branch from the repository
D. Jenkins detects and indexes the new branch during the next scheduled scan

Solution

  1. Step 1: Understand scan trigger timing

    The job is set to scan branches every 1 hour, not instantly.
  2. Step 2: Predict behavior on new branch push

    Jenkins will detect and index the new branch during the next scheduled scan, not immediately.
  3. Final Answer:

    Jenkins detects and indexes the new branch during the next scheduled scan -> Option D
  4. Quick Check:

    Scheduled scan finds new branches [OK]
Hint: Scheduled scans find new branches, not instant builds [OK]
Common Mistakes:
  • Assuming immediate build on branch push
  • Thinking Jenkins ignores new branches without manual scan
  • Believing Jenkins deletes new branches automatically
4. You configured a Multibranch Pipeline job but Jenkins does not detect new branches after pushing them. What is the most likely cause?
medium
A. The Jenkins server is offline
B. Branch indexing is disabled or scan trigger is not set
C. The repository URL is incorrect
D. The branches are deleted automatically after scan

Solution

  1. Step 1: Check branch indexing settings

    If branch indexing or scan triggers are disabled, Jenkins won't detect new branches automatically.
  2. Step 2: Consider other causes

    Incorrect repo URL or offline server would cause broader failures, not just missing branches.
  3. Final Answer:

    Branch indexing is disabled or scan trigger is not set -> Option B
  4. Quick Check:

    Branch indexing must be enabled for detection [OK]
Hint: Enable branch indexing and scan triggers to detect branches [OK]
Common Mistakes:
  • Ignoring branch indexing settings
  • Assuming Jenkins deletes branches automatically
  • Blaming repository URL without checking indexing
5. How can you configure a Jenkins Multibranch Pipeline job to automatically build only branches matching the pattern feature/* during branch indexing?
hard
A. Set the Branch Sources filter with feature/* under 'Include branches matching' pattern
B. Manually create jobs for each feature branch
C. Use a post-build script to delete other branches
D. Configure the job to scan all branches without filters

Solution

  1. Step 1: Use branch source filtering

    Jenkins Multibranch Pipeline allows filtering branches by patterns in the Branch Sources settings.
  2. Step 2: Apply the pattern filter

    Setting 'Include branches matching' to feature/* ensures only those branches are indexed and built.
  3. Final Answer:

    Set the Branch Sources filter with feature/* under 'Include branches matching' pattern -> Option A
  4. Quick Check:

    Branch filters limit builds to matching branches [OK]
Hint: Use branch source filters to build specific branch patterns [OK]
Common Mistakes:
  • Creating manual jobs instead of using filters
  • Not applying branch filters and building all branches
  • Using post-build scripts to filter branches incorrectly
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