Interview › Scripting (Bash, Groovy)
How do you define and call a function (or step) in a Jenkins Groovy pipeline? [Advanced]
Answer
In a Jenkinsfile, I can define a Groovy function with def name(args) { ... } or create a reusable shared-library step in vars/name.groovy with def call(...). I call it like any other Pipeline step.
Technical explanation
Small helper functions can live in a Jenkinsfile, but widely reused logic belongs in a shared library.
Pipeline steps inside functions must run in the right Jenkins context, usually inside node/agent execution.
Shared-library steps should accept maps for optional parameters and validate required inputs clearly.
Hands-on example
def notify(String status) {
echo "Build ${env.JOB_NAME} #${env.BUILD_NUMBER}: ${status}"
}
pipeline {
agent any
stages { stage('Test') { steps { sh 'make test' } } }
post {
success { script { notify('SUCCESS') } }
failure { script { notify('FAILURE') } }
}
}
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]