Interview › Scripting (Bash, Groovy)
What is a Jenkins shared library, and how is it written in Groovy? [Advanced]
Answer
A Jenkins shared library is reusable Pipeline code stored in a separate repository or configured library. It is written in Groovy using vars/ for global pipeline steps and src/ for classes, allowing teams to standardize CI/CD behavior across repositories.
Technical explanation
vars/myStep.groovy exposes a callable step named myStep in Jenkinsfiles.
src/ contains regular Groovy classes organized by package.
Shared libraries reduce copy-paste Jenkinsfiles and centralize patterns like Docker build, security scan, deployment, and notifications.
Hands-on example
// vars/buildAndPush.groovy
def call(Map cfg = [:]) {
sh "docker build -t ${cfg.image}:${env.BUILD_NUMBER} ."
sh "docker push ${cfg.image}:${env.BUILD_NUMBER}"
}
// Jenkinsfile
@Library('platform-ci') _
buildAndPush(image: 'registry.example.com/orders-api')
Check how well your resume matches the role with our free resume checker— match score, ATS check, and the skills you're missing.
More Scripting (Bash, Groovy) interview questions
- What is the purpose of the shebang line, and what does #!/bin/bash do? [Basic]
- What is the difference between sh and bash? [Basic]
- How do you make a script executable and run it? [Basic]
- What is the difference between running a script with ./script.sh, bash script.sh, and source script.sh? [Basic]
- What does sourcing a script do differently from executing it? [Basic]
- How do you declare a variable in Bash, and why are spaces around = not allowed? [Basic]
- What is the difference between $var and ${var}? [Basic]
- What is the difference between single quotes and double quotes in Bash? [Basic]