Bird
Raised Fist0
Jenkinsdevops~10 mins

Pull request builds 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 a build on pull request creation.

Jenkins
pipeline {
  agent any
  triggers {
    [1] {
      orgWhitelist('github.com')
    }
  }
  stages {
    stage('Build') {
      steps {
        echo 'Building pull request...'
      }
    }
  }
}
Drag options to blanks, or click blank then click option'
ApollSCM
Bupstream
Ccron
DgithubPullRequest
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'pollSCM' triggers builds on SCM changes but not specifically on pull requests.
Using 'cron' triggers builds on a schedule, not on pull requests.
2fill in blank
medium

Complete the code to specify the branch source for the pull request build.

Jenkins
pipeline {
  agent any
  triggers {
    githubPullRequest {
      [1] 'origin'
    }
  }
  stages {
    stage('Test') {
      steps {
        echo 'Testing pull request branch...'
      }
    }
  }
}
Drag options to blanks, or click blank then click option'
AbranchFilter
BorgWhitelist
CbranchSource
DtriggerPhrase
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'orgWhitelist' filters organizations, not branches.
Using 'triggerPhrase' is for manual trigger phrases, not branch filtering.
3fill in blank
hard

Fix the error in the pull request build trigger configuration.

Jenkins
pipeline {
  agent any
  triggers {
    githubPullRequest {
      orgWhitelist('github.com')
      [1] 'master'
    }
  }
  stages {
    stage('Deploy') {
      steps {
        echo 'Deploying pull request...'
      }
    }
  }
}
Drag options to blanks, or click blank then click option'
AbranchFilter
Bbranch
CbranchName
DbranchSource
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'branch' instead of 'branchFilter' causes syntax errors.
Using 'branchName' is not recognized in this context.
4fill in blank
hard

Fill both blanks to configure the pull request trigger with a whitelist and a trigger phrase.

Jenkins
pipeline {
  agent any
  triggers {
    githubPullRequest {
      [1]('github.com')
      [2]('OK to test')
    }
  }
  stages {
    stage('Verify') {
      steps {
        echo 'Verifying pull request...'
      }
    }
  }
}
Drag options to blanks, or click blank then click option'
AorgWhitelist
BtriggerPhrase
CbranchFilter
Dcron
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'cron' instead of 'triggerPhrase' for manual trigger comments.
Confusing 'branchFilter' with organization whitelist.
5fill in blank
hard

Fill all three blanks to create a pull request build that filters branches, uses a whitelist, and triggers on a phrase.

Jenkins
pipeline {
  agent any
  triggers {
    githubPullRequest {
      [1]('origin/develop')
      [2]('my-org')
      [3]('run tests')
    }
  }
  stages {
    stage('Build and Test') {
      steps {
        echo 'Building and testing pull request...'
      }
    }
  }
}
Drag options to blanks, or click blank then click option'
AbranchFilter
BorgWhitelist
CtriggerPhrase
Dcron
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'cron' in place of 'triggerPhrase' causes builds to run on schedule, not on pull requests.
Mixing up 'orgWhitelist' and 'branchFilter' option names.

Practice

(1/5)
1. What is the main purpose of pull request builds in Jenkins?
easy
A. To automatically test code changes before merging
B. To deploy code directly to production
C. To delete old branches after merging
D. To manually review code without testing

Solution

  1. Step 1: Understand pull request builds concept

    Pull request builds run tests automatically on code changes before merging to ensure quality.
  2. Step 2: Compare options with purpose

    Only To automatically test code changes before merging describes automatic testing before merging, which is the main goal.
  3. Final Answer:

    To automatically test code changes before merging -> Option A
  4. Quick Check:

    Pull request builds = automatic pre-merge tests [OK]
Hint: Pull request builds test code before merging [OK]
Common Mistakes:
  • Confusing deployment with testing
  • Thinking pull request builds delete branches
  • Assuming manual review replaces automated tests
2. Which Jenkins pipeline syntax correctly triggers a build on a GitHub pull request?
easy
A. triggers { githubPush() }
B. triggers { cron('H/5 * * * *') }
C. triggers { githubPullRequest() }
D. triggers { pollSCM('H/15 * * * *') }

Solution

  1. Step 1: Identify trigger for pull request builds

    The correct trigger for GitHub pull request builds in Jenkins is githubPullRequest().
  2. Step 2: Eliminate other triggers

    githubPush() triggers on push events, cron and pollSCM are time-based triggers, not pull request triggers.
  3. Final Answer:

    triggers { githubPullRequest() } -> Option C
  4. Quick Check:

    Pull request trigger = githubPullRequest() [OK]
Hint: Use githubPullRequest() for PR triggers [OK]
Common Mistakes:
  • Using githubPush() instead of githubPullRequest()
  • Confusing time-based triggers with PR triggers
  • Omitting triggers block entirely
3. Given this Jenkinsfile snippet, what happens when a pull request is opened?
pipeline {
  agent any
  triggers {
    githubPullRequest()
  }
  stages {
    stage('Build') {
      steps {
        echo 'Building...'
      }
    }
  }
}
medium
A. The pipeline waits for manual approval before running
B. The pipeline runs automatically and prints 'Building...'
C. The pipeline runs only on push events, not pull requests
D. The pipeline fails due to syntax error

Solution

  1. Step 1: Analyze trigger block

    The trigger githubPullRequest() starts the pipeline automatically on pull request events.
  2. Step 2: Check pipeline steps

    The pipeline has a 'Build' stage that echoes 'Building...'. No manual approval or syntax errors are present.
  3. Final Answer:

    The pipeline runs automatically and prints 'Building...' -> Option B
  4. Quick Check:

    githubPullRequest() triggers automatic build [OK]
Hint: githubPullRequest() triggers auto build on PR [OK]
Common Mistakes:
  • Assuming manual approval is needed
  • Confusing push and pull request triggers
  • Thinking syntax error exists in snippet
4. A Jenkins pipeline with githubPullRequest() trigger does not start when a pull request is created. What is the most likely cause?
medium
A. The GitHub webhook for pull requests is not configured
B. The Jenkinsfile has a syntax error in the stages block
C. The pipeline uses cron trigger instead
D. The pull request was merged before the build started

Solution

  1. Step 1: Understand trigger requirements

    The githubPullRequest() trigger requires GitHub webhooks to notify Jenkins of PR events.
  2. Step 2: Identify common failure reason

    If the webhook is missing or misconfigured, Jenkins won't start the build on PR creation.
  3. Final Answer:

    The GitHub webhook for pull requests is not configured -> Option A
  4. Quick Check:

    Missing webhook = no PR build trigger [OK]
Hint: Check GitHub webhook setup if PR builds don't start [OK]
Common Mistakes:
  • Blaming syntax errors without checking webhooks
  • Ignoring webhook configuration
  • Assuming cron triggers handle PR events
5. You want Jenkins to build pull requests only from specific branches (e.g., 'feature/*') and skip others. Which configuration snippet achieves this?
hard
A. triggers { githubPullRequest { branchFilter { exclude 'feature/*' } } }
B. triggers { pollSCM { ignoreBranches 'feature/*' } }
C. triggers { githubPush { branch 'feature/*' } }
D. triggers { githubPullRequest { branchFilter { include 'feature/*' } } }

Solution

  1. Step 1: Identify correct trigger and filter syntax

    The githubPullRequest trigger supports branchFilter with include to specify branches to build.
  2. Step 2: Compare options for filtering

    triggers { githubPullRequest { branchFilter { include 'feature/*' } } } includes only 'feature/*' branches, which matches the requirement. triggers { githubPullRequest { branchFilter { exclude 'feature/*' } } } excludes them, which is opposite. Options C and D use wrong triggers or syntax.
  3. Final Answer:

    triggers { githubPullRequest { branchFilter { include 'feature/*' } } } -> Option D
  4. Quick Check:

    Use branchFilter include to limit PR builds [OK]
Hint: Use branchFilter include to build specific PR branches [OK]
Common Mistakes:
  • Using exclude instead of include
  • Using githubPush instead of githubPullRequest
  • Trying to filter branches with pollSCM
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