Bird
Raised Fist0
Jenkinsdevops~20 mins

Labels for agent selection in Jenkins - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Label Mastery in Jenkins
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
1:30remaining
Agent selection with label in Jenkins pipeline
What will be the output or behavior when running this Jenkins pipeline snippet?
Jenkins
pipeline {
  agent { label 'linux && docker' }
  stages {
    stage('Build') {
      steps {
        echo "Running on agent with linux and docker labels"
      }
    }
  }
}
AThe pipeline runs on any agent that has either 'linux' or 'docker' label assigned.
BThe pipeline fails to start due to invalid label syntax.
CThe pipeline runs only on agents that have both 'linux' and 'docker' labels assigned.
DThe pipeline runs on the first available agent regardless of labels.
Attempts:
2 left
💡 Hint
Think about how Jenkins interprets label expressions with && operator.
🧠 Conceptual
intermediate
1:30remaining
Understanding label expressions for agent selection
Which label expression correctly selects agents that have the label 'windows' but not the label 'test'?
Awindows && !test
Bwindows || !test
C!windows && test
D!windows || test
Attempts:
2 left
💡 Hint
Use logical AND and NOT operators to combine labels.
❓ Troubleshoot
advanced
2:00remaining
Troubleshooting agent label mismatch in Jenkins
A Jenkins pipeline with agent label 'docker && gpu' fails to find a suitable agent. Which is the most likely cause?
AThe Jenkins master node is offline.
BThe label expression syntax is incorrect and causes a parsing error.
CThe pipeline requires a Windows agent but labels specify Linux agents.
DNo agent has both 'docker' and 'gpu' labels assigned.
Attempts:
2 left
💡 Hint
Check the labels assigned to your agents carefully.
🔀 Workflow
advanced
1:30remaining
Configuring Jenkins pipeline to run on multiple label options
You want a Jenkins pipeline to run on agents that have either 'mac' or 'linux' label. Which agent label expression should you use?
Amac && linux
Bmac || linux
Cmac, linux
Dmac linux
Attempts:
2 left
💡 Hint
Use logical OR operator to select agents with either label.
✅ Best Practice
expert
2:30remaining
Best practice for labeling Jenkins agents for flexible selection
Which approach is best to label Jenkins agents to allow pipelines to select agents flexibly by OS and capability?
AAssign multiple specific labels like 'linux', 'docker', 'gpu' to each agent based on capabilities.
BAssign a single generic label like 'build-agent' to all agents regardless of capabilities.
CUse only OS labels like 'windows' or 'linux' and ignore capabilities.
DDo not use labels; rely on agent names for selection.
Attempts:
2 left
💡 Hint
Think about how pipelines can select agents based on multiple criteria.

Practice

(1/5)
1.

What is the main purpose of using labels in Jenkins agent selection?

easy
A. To store job build logs
B. To change the Jenkins user interface theme
C. To tell Jenkins which agent can run a specific job
D. To configure Jenkins system settings

Solution

  1. Step 1: Understand Jenkins agent labels

    Labels are tags assigned to agents to identify their capabilities or roles.
  2. Step 2: Purpose of labels in job assignment

    Jenkins uses these labels to select the right agent that matches the job requirements.
  3. Final Answer:

    To tell Jenkins which agent can run a specific job -> Option C
  4. Quick Check:

    Labels guide agent selection = A [OK]
Hint: Labels connect jobs to suitable agents quickly [OK]
Common Mistakes:
  • Thinking labels change UI or store logs
  • Confusing labels with system settings
2.

Which of the following is the correct syntax to select an agent with label linux and docker in Jenkins pipeline?

easy
A. agent { label linux docker }
B. agent { label 'linux, docker' }
C. agent { label 'linux || docker' }
D. agent { label 'linux && docker' }

Solution

  1. Step 1: Understand label expressions in Jenkins

    Jenkins uses logical operators like && for AND and || for OR in label expressions.
  2. Step 2: Correct syntax for AND condition

    To require both labels, use 'linux && docker' inside the label field.
  3. Final Answer:

    agent { label 'linux && docker' } -> Option D
  4. Quick Check:

    AND labels use && = D [OK]
Hint: Use && for AND, || for OR in label expressions [OK]
Common Mistakes:
  • Using space-separated labels without operators
  • Using commas instead of logical operators
  • Confusing AND (&&) with OR (||)
3.

Given this Jenkins pipeline snippet, what agent will run the job if agents have labels linux, docker, and gpu?

agent { label 'linux && (docker || gpu)' }
medium
A. An agent with linux and either docker or gpu labels
B. An agent with linux and gpu labels
C. An agent with both linux and docker labels
D. Any agent with linux, docker, and gpu labels all together

Solution

  1. Step 1: Analyze label expression

    The expression requires the agent to have the 'linux' label AND either 'docker' OR 'gpu' label.
  2. Step 2: Determine matching agents

    Agents with 'linux' plus 'docker' or 'linux' plus 'gpu' satisfy the condition.
  3. Final Answer:

    An agent with linux and either docker or gpu labels -> Option A
  4. Quick Check:

    linux AND (docker OR gpu) = A [OK]
Hint: Parentheses group OR conditions, AND applies outside [OK]
Common Mistakes:
  • Thinking all three labels are required
  • Ignoring parentheses in label expressions
  • Assuming OR means both labels must be present
4.

What is wrong with this Jenkins pipeline agent label expression that causes the job to wait indefinitely?

agent { label 'linux && docker || gpu' }
medium
A. Labels must be quoted with double quotes, not single quotes
B. Missing parentheses causing wrong operator precedence
C. Using commas instead of logical operators
D. Agent label cannot contain logical operators

Solution

  1. Step 1: Understand operator precedence in label expressions

    Logical AND (&&) has higher precedence than OR (||), so expression is parsed as '(linux && docker) || gpu'.
  2. Step 2: Identify why job waits

    If no agent has both linux and docker, but some have gpu alone, job may pick gpu agents. If gpu agents are missing or busy, job waits.
  3. Final Answer:

    Missing parentheses causing wrong operator precedence -> Option B
  4. Quick Check:

    Use parentheses to control label logic = C [OK]
Hint: Use parentheses to clarify label logic precedence [OK]
Common Mistakes:
  • Ignoring operator precedence in label expressions
  • Using wrong quote types
  • Believing logical operators are not allowed
5.

You want a Jenkins job to run only on agents that have linux and docker labels but never on agents with gpu label. Which label expression should you use?

hard
A. linux && docker && !gpu
B. linux && docker || !gpu
C. linux && (docker || !gpu)
D. linux && docker && gpu

Solution

  1. Step 1: Understand label requirements

    The job must run on agents with both 'linux' and 'docker' labels, but exclude any with 'gpu'.
  2. Step 2: Construct correct label expression

    Use AND (&&) for required labels and NOT (!) to exclude 'gpu': 'linux && docker && !gpu'.
  3. Final Answer:

    linux && docker && !gpu -> Option A
  4. Quick Check:

    Include linux and docker, exclude gpu = B [OK]
Hint: Use ! to exclude labels in Jenkins expressions [OK]
Common Mistakes:
  • Using OR instead of AND for required labels
  • Not excluding gpu label properly
  • Misplacing parentheses causing wrong 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