📖 Scenario: You are working on a Jenkins pipeline to automate your software build process. You want to use Jenkins pipeline utility functions to handle files and data easily.
🎯 Goal: Build a simple Jenkins pipeline script that uses pipeline utility functions to read a properties file, parse it, and print a specific property value.
📋 What You'll Learn
Create a properties file content as a string
Use a config variable to hold the file content
Use the pipeline utility function readProperties to parse the properties content
Print the value of a specific property from the parsed data
💡 Why This Matters
🌍 Real World
Jenkins pipelines often need to read configuration files to control build and deployment steps dynamically.
💼 Career
Knowing how to use pipeline utility functions helps automate and simplify CI/CD pipelines, a key skill for DevOps engineers.
Progress0 / 4 steps
1
Create properties file content
Create a variable called propsContent and assign it the string value "version=1.2.3\nreleaseDate=2024-06-01" representing the properties file content.
Jenkins
Hint
Use def propsContent = "version=1.2.3\nreleaseDate=2024-06-01" to create the string variable.
2
Assign properties content to a config variable
Create a variable called configFile and assign it the value of propsContent.
Jenkins
Hint
Assign configFile = propsContent to hold the properties content.
3
Parse properties content using readProperties
Use the pipeline utility function readProperties with the argument text: configFile and assign the result to a variable called props.
Jenkins
Hint
Use def props = readProperties text: configFile to parse the properties string.
4
Print the version property
Write a println statement to print the value of the version property from the props variable.
Jenkins
Hint
Use println(props['version']) to display the version value.
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
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.
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.
Final Answer:
To simplify file and data handling within Jenkins pipelines -> Option C
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
Step 1: Recall the correct function name and syntax
The Jenkins pipeline utility function to read JSON is readJSON with a named parameter file.
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.
Final Answer:
def data = readJSON file: 'config.json' -> Option A
Quick Check:
Correct syntax = readJSON file: 'filename' [OK]
Hint: Use exact function name and named parameter 'file' [OK]
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
Step 1: Understand readFile usage
The readFile function reads the entire content of 'example.txt' into the variable content.
Step 2: Understand writeFile usage
The writeFile function writes the text stored in content into a new file named 'copy.txt'.
Final Answer:
The file 'copy.txt' will contain the same content as 'example.txt' -> Option A
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
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.
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.
Final Answer:
The 'unzip' function is not available without the Pipeline Utility Steps plugin installed -> Option B
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
Step 1: Identify function to check file existence
The fileExists function returns true if the file is present, false otherwise.
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.
Final Answer:
Use fileExists('config.yaml') to check existence, then readFile('config.yaml') to read -> Option D
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 unknownstrongwhile earning +1 Grip toward your certificate.