Bird
Raised Fist0
Jenkinsdevops~10 mins

Pipeline utility functions in Jenkins - Step-by-Step Execution

Choose your learning style10 modes available
Process Flow - Pipeline utility functions
Start Pipeline
↓
Call Utility Function
↓
Utility Function Executes
↓
Return Result
↓
Use Result in Pipeline
↓
Continue Pipeline or End
The pipeline starts, calls a utility function, gets a result, and uses it to continue or finish.
Execution Sample
Jenkins
def greet(name) {
  return "Hello, ${name}!"
}

pipeline {
  agent any
  stages {
    stage('Example') {
      steps {
        script {
          def message = greet('World')
          echo message
        }
      }
    }
  }
}
Defines a utility function greet that returns a greeting message, then calls it in the pipeline and prints the message.
Process Table
StepActionEvaluationResult
1Pipeline startsN/APipeline initialized
2Call greet('World')Function greet called with 'World'Returns 'Hello, World!'
3Assign return to messagemessage = 'Hello, World!'message holds greeting string
4echo messagePrint message to consoleConsole shows: Hello, World!
5Pipeline continues or endsNo more stepsPipeline completes
💡 Pipeline ends after all stages complete
Status Tracker
VariableStartAfter Step 3Final
messageundefined'Hello, World!''Hello, World!'
Key Moments - 2 Insights
Why do we need to assign the function return to a variable before using it?
Because the function returns a value that must be stored to use later, as shown in step 3 where message gets the returned greeting.
What happens if the utility function is not defined before calling it?
The pipeline will fail with an error because it cannot find the function, unlike in step 2 where greet is defined and called successfully.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the value of 'message' after step 3?
Anull
Bundefined
C'Hello, World!'
D'greet'
💡 Hint
Check the variable_tracker row for 'message' after step 3
At which step does the pipeline print the greeting message?
AStep 2
BStep 4
CStep 3
DStep 5
💡 Hint
Look at the execution_table row where echo message is executed
If the greet function returned 'Hi, ${name}!' instead, what would be the output at step 4?
AHi, World!
BHello, World!
CHi, ${name}!
DError
💡 Hint
Consider the function return value and how it is assigned to message
Concept Snapshot
Pipeline utility functions are reusable blocks defined with def.
They return values used later in the pipeline.
Call them inside script blocks with parameters.
Assign their return to variables to use results.
Use echo to print outputs.
Functions must be defined before calling.
Full Transcript
This visual execution shows how Jenkins pipeline utility functions work. The pipeline starts and calls a utility function named greet with the argument 'World'. The function returns a greeting string 'Hello, World!'. This return value is assigned to the variable message. Then the pipeline prints the message to the console using echo. Finally, the pipeline completes after all stages run. Variables and steps are tracked to show how the function call affects pipeline state. Key moments clarify why storing function returns is necessary and the importance of defining functions before use. Quiz questions test understanding of variable values and output timing.

Practice

(1/5)
1. What is the main purpose of Jenkins pipeline utility functions?
easy
A. To manage Jenkins user permissions
B. To create new Jenkins jobs automatically
C. To simplify file and data handling within Jenkins pipelines
D. To monitor Jenkins server performance

Solution

  1. Step 1: Understand the role of pipeline utility functions

    These functions help with tasks like reading files, writing files, and handling data formats inside pipelines.
  2. Step 2: Compare options with the main purpose

    Only To simplify file and data handling within Jenkins pipelines describes simplifying file and data handling, which matches the purpose of these functions.
  3. Final Answer:

    To simplify file and data handling within Jenkins pipelines -> Option C
  4. Quick Check:

    Pipeline utility functions = simplify file/data handling [OK]
Hint: Focus on file and data tasks in pipelines [OK]
Common Mistakes:
  • Confusing pipeline utilities with job creation
  • Thinking they manage user permissions
  • Assuming they monitor server performance
2. Which of the following is the correct syntax to read a JSON file using Jenkins pipeline utility functions?
easy
A. def data = readJSON file: 'config.json'
B. def data = readJson('config.json')
C. def data = read_json file: 'config.json'
D. def data = readJSON('config.json')

Solution

  1. Step 1: Recall the correct function name and syntax

    The Jenkins pipeline utility function to read JSON is readJSON with a named parameter file.
  2. Step 2: Match the syntax with options

    def data = readJSON file: 'config.json' uses readJSON file: 'config.json', which is the correct syntax. Others use incorrect function names or parameter styles.
  3. Final Answer:

    def data = readJSON file: 'config.json' -> Option A
  4. Quick Check:

    Correct syntax = readJSON file: 'filename' [OK]
Hint: Use exact function name and named parameter 'file' [OK]
Common Mistakes:
  • Using wrong function name casing
  • Passing filename as positional argument
  • Using underscores in function names
3. Given the following Jenkins pipeline snippet:
def content = readFile 'example.txt'
writeFile file: 'copy.txt', text: content
What will be the result after running this pipeline?
medium
A. The file 'copy.txt' will contain the same content as 'example.txt'
B. The file 'example.txt' will be deleted
C. An error occurs because writeFile requires a closure
D. The file 'copy.txt' will be empty

Solution

  1. Step 1: Understand readFile usage

    The readFile function reads the entire content of 'example.txt' into the variable content.
  2. Step 2: Understand writeFile usage

    The writeFile function writes the text stored in content into a new file named 'copy.txt'.
  3. Final Answer:

    The file 'copy.txt' will contain the same content as 'example.txt' -> Option A
  4. Quick Check:

    readFile + writeFile = copy content [OK]
Hint: readFile reads, writeFile writes content to file [OK]
Common Mistakes:
  • Assuming writeFile deletes files
  • Thinking writeFile needs a closure
  • Expecting writeFile to append by default
4. You have this Jenkins pipeline code:
unzip zipFile: 'archive.zip', dir: 'output'

The pipeline fails with an error. What is the most likely cause?
medium
A. The 'unzip' function requires the 'zipFile' parameter to be a File object, not a string
B. The 'unzip' function is not available without the Pipeline Utility Steps plugin installed
C. The 'dir' parameter must be an absolute path, not a relative one
D. The 'unzip' function requires a closure to specify files to extract

Solution

  1. Step 1: Check plugin requirement for 'unzip'

    The unzip function is part of the Pipeline Utility Steps plugin, which must be installed for it to work.
  2. Step 2: Analyze error cause

    If the plugin is missing, the function call will fail regardless of parameters. Other options are incorrect because strings are accepted and relative paths work.
  3. Final Answer:

    The 'unzip' function is not available without the Pipeline Utility Steps plugin installed -> Option B
  4. Quick Check:

    Missing plugin = unzip fails [OK]
Hint: Check if Pipeline Utility Steps plugin is installed [OK]
Common Mistakes:
  • Assuming parameter types are wrong
  • Thinking relative paths are invalid
  • Expecting unzip to need a closure
5. You want to check if a file named 'config.yaml' exists in your workspace before reading it in a Jenkins pipeline. Which pipeline utility function and approach should you use?
hard
A. Use readJSON file: 'config.yaml' to check and read the file
B. Use readFile('config.yaml') directly and catch exceptions if file missing
C. Use writeFile file: 'config.yaml' to create the file before reading
D. Use fileExists('config.yaml') to check existence, then readFile('config.yaml') to read

Solution

  1. Step 1: Identify function to check file existence

    The fileExists function returns true if the file is present, false otherwise.
  2. Step 2: Use conditional logic to read file safely

    Check with fileExists first, then read with readFile only if the file exists to avoid errors.
  3. Final Answer:

    Use fileExists('config.yaml') to check existence, then readFile('config.yaml') to read -> Option D
  4. Quick Check:

    Check fileExists before readFile [OK]
Hint: Always check fileExists before reading files [OK]
Common Mistakes:
  • Trying to read file without checking existence
  • Using readJSON on a YAML file
  • Creating file before reading unnecessarily
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