Bird
Raised Fist0
Jenkinsdevops~5 mins

Pipeline utility functions in Jenkins - Commands & Configuration

Choose your learning style10 modes available
Introduction
Pipeline utility functions in Jenkins help automate common tasks like reading files, writing files, and handling JSON or YAML data inside your build pipelines. They make your pipeline scripts cleaner and easier to manage.
When you want to read configuration data from a file during a build.
When you need to write test results or logs to a file inside the pipeline.
When you want to parse JSON or YAML data to make decisions in your pipeline.
When you want to share common code snippets across multiple pipeline scripts.
When you want to simplify complex pipeline steps by using reusable utility functions.
Config File - Jenkinsfile
Jenkinsfile
pipeline {
    agent any
    stages {
        stage('Example') {
            steps {
                script {
                    // Read a JSON file
                    def jsonData = readJSON file: 'config.json'
                    echo "Project name is: ${jsonData.projectName}"

                    // Write some text to a file
                    writeFile file: 'output.txt', text: 'Build completed successfully'

                    // Load a shared utility script
                    def utils = load 'utils.groovy'
                    utils.sayHello('Jenkins User')
                }
            }
        }
    }
}

This Jenkinsfile shows how to use pipeline utility functions:

  • readJSON reads JSON data from a file.
  • writeFile writes text to a file.
  • load loads a Groovy script with utility functions.

These functions help keep your pipeline code clean and reusable.

Commands
Check that Jenkins Job Builder is installed and see its version to ensure compatibility with pipeline utilities.
Terminal
jenkins-jobs --version
Expected OutputExpected
1.0.0
Display the Jenkinsfile content to verify the pipeline utility functions usage.
Terminal
cat Jenkinsfile
Expected OutputExpected
pipeline { agent any stages { stage('Example') { steps { script { // Read a JSON file def jsonData = readJSON file: 'config.json' echo "Project name is: ${jsonData.projectName}" // Write some text to a file writeFile file: 'output.txt', text: 'Build completed successfully' // Load a shared utility script def utils = load 'utils.groovy' utils.sayHello('Jenkins User') } } } } }
Show the content of the utility Groovy script that contains reusable functions.
Terminal
cat utils.groovy
Expected OutputExpected
def sayHello(name) { echo "Hello, ${name}!" } return this
Key Concept

If you remember nothing else from pipeline utility functions, remember: they help you reuse code and handle files easily inside Jenkins pipelines.

Common Mistakes
Trying to use pipeline utility functions outside a script block.
Pipeline utility functions like readJSON and writeFile must be called inside a script block to run Groovy code.
Always wrap utility function calls inside a script { } block in your Jenkinsfile.
Not loading the utility Groovy script before calling its functions.
Without loading, Jenkins does not know about the functions defined in external scripts, causing errors.
Use the load step to import the Groovy script before calling its functions.
Summary
Use readJSON and writeFile inside script blocks to handle files in Jenkins pipelines.
Load external Groovy scripts with load to reuse utility functions.
Keep pipeline code clean and maintainable by using these utility functions.

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