📖 Scenario: You are a DevOps engineer setting up a simple Jenkins freestyle job to automate a build process. This job will run a shell command to print a welcome message.
🎯 Goal: Build a Jenkins freestyle job configuration that defines the job name, adds a shell build step with a specific command, and outputs the build log showing the command's output.
📋 What You'll Learn
Create a Jenkins freestyle job configuration with the exact job name WelcomeJob.
Add a shell build step that runs the command echo "Welcome to Jenkins freestyle job!".
Print the build log output showing the welcome message.
💡 Why This Matters
🌍 Real World
Jenkins freestyle jobs are commonly used to automate simple build and deployment tasks in software projects.
💼 Career
Understanding how to configure and simulate Jenkins jobs helps DevOps engineers automate workflows and troubleshoot build processes.
Progress0 / 4 steps
1
Create the Jenkins freestyle job configuration
Create a variable called job_config and assign it a dictionary with a key name set to the string "WelcomeJob".
Jenkins
Hint
Use a dictionary with the key "name" and value "WelcomeJob".
2
Add a shell build step command
Add a key build_steps to the job_config dictionary and assign it a list containing the exact string "echo \"Welcome to Jenkins freestyle job!\"".
Jenkins
Hint
Add a list with the exact echo command string as the value for the key "build_steps".
3
Simulate running the build steps
Create a variable called build_log and assign it an empty list. Then use a for loop with variable step to iterate over job_config["build_steps"]. Inside the loop, append the string "Running: " + step to build_log and then append the exact output string "Welcome to Jenkins freestyle job!" to build_log.
Jenkins
Hint
Use a loop to append the command and its output to build_log.
4
Print the build log output
Use a for loop with variable line to iterate over build_log and print each line.
Jenkins
Hint
Print each line from the build_log list using a loop.
Practice
(1/5)
1. What is the main purpose of a freestyle job in Jenkins?
easy
A. To monitor server hardware status
B. To create complex pipelines with multiple stages
C. To manage Jenkins user permissions
D. To run simple automated tasks configured via the Jenkins UI
Solution
Step 1: Understand freestyle job basics
Freestyle jobs are designed for simple automation tasks in Jenkins, easy to set up through the UI.
Step 2: Compare options
Monitoring server hardware, creating complex pipelines, and managing user permissions are other Jenkins features or unrelated tasks, not freestyle jobs.
Final Answer:
To run simple automated tasks configured via the Jenkins UI -> Option D
Quick Check:
Freestyle job = simple automation [OK]
Hint: Freestyle jobs are for simple tasks, not complex pipelines [OK]
Common Mistakes:
Confusing freestyle jobs with pipeline jobs
Thinking freestyle jobs manage users or hardware
Assuming freestyle jobs require scripting
2. Which of the following is the correct way to start creating a freestyle job in Jenkins?
easy
A. Go to 'Manage Jenkins' and select 'Create Freestyle Job'
B. Run the command 'jenkins create freestyle' in the terminal
C. Click 'New Item', enter a name, select 'Freestyle project', then click OK
D. Edit the Jenkinsfile to add a freestyle job
Solution
Step 1: Recall Jenkins UI steps
To create a freestyle job, you click 'New Item', name it, choose 'Freestyle project', and confirm.
Step 2: Eliminate incorrect options
Going to 'Manage Jenkins', running terminal commands, and editing a Jenkinsfile are not how freestyle jobs are created.
Final Answer:
Click 'New Item', enter a name, select 'Freestyle project', then click OK -> Option C
Quick Check:
Create freestyle job = New Item + Freestyle project [OK]
Hint: Start with 'New Item' and pick 'Freestyle project' [OK]
Common Mistakes:
Looking for freestyle job creation in 'Manage Jenkins'
Trying to create freestyle jobs via terminal commands
Editing Jenkinsfile instead of using UI
3. Given a freestyle job configured to run a shell command echo Hello Jenkins, what will be the output in the build console?
medium
A. Hello Jenkins
B. echo Hello Jenkins
C. Error: command not found
D. Build failed
Solution
Step 1: Understand shell command execution in freestyle job
The shell command echo Hello Jenkins prints the text 'Hello Jenkins' to the console.
Step 2: Analyze output options
'Hello Jenkins' matches the expected output. 'echo Hello Jenkins' shows the command itself, which is not the output. Error and build failure do not occur here.
Final Answer:
Hello Jenkins -> Option A
Quick Check:
echo command prints text [OK]
Hint: echo prints text, not the command itself [OK]
Common Mistakes:
Confusing command output with command text
Assuming shell commands fail without reason
Expecting build failure without errors
4. You created a freestyle job but the build fails immediately with 'No such file or directory' error when running a shell command. What is the most likely cause?
medium
A. The freestyle job was not saved properly
B. The shell command references a file that does not exist on the Jenkins agent
C. Jenkins server is offline
D. The job type should be pipeline, not freestyle
Solution
Step 1: Understand the error message
'No such file or directory' means the shell command tries to access a missing file on the Jenkins agent machine.
Step 2: Evaluate other options
The freestyle job was not saved properly is unlikely because saving issues cause different errors. Jenkins server is offline would prevent any build start. The job type should be pipeline, not freestyle is unrelated to file errors.
Final Answer:
The shell command references a file that does not exist on the Jenkins agent -> Option B
Quick Check:
File missing on agent = 'No such file' error [OK]
Hint: Check file paths on Jenkins agent for shell commands [OK]
Common Mistakes:
Assuming job type causes file errors
Ignoring agent environment differences
Thinking Jenkins server offline causes this error
5. You want to create a freestyle job that triggers automatically every day at 2 AM and runs a shell script. Which configuration steps are needed?
hard
A. Set 'Build Triggers' to 'Build periodically' with schedule '0 2 * * *' and add shell command in 'Build' section
B. Add a cron job on the Jenkins server to run the job at 2 AM
C. Configure 'Poll SCM' with schedule '0 2 * * *' and add shell command in 'Post-build Actions'
D. Use 'Build after other projects are built' trigger and add shell command in 'Build' section
Solution
Step 1: Identify correct trigger for scheduled builds
In freestyle jobs, 'Build periodically' with cron syntax schedules automatic runs at specified times.
Step 2: Place shell command in the 'Build' section
The shell script should be added under 'Build' steps, not post-build or external cron.
Final Answer:
Set 'Build Triggers' to 'Build periodically' with schedule '0 2 * * *' and add shell command in 'Build' section -> Option A
Quick Check:
Scheduled build = 'Build periodically' + shell in 'Build' [OK]
Hint: Use 'Build periodically' with cron for scheduled freestyle jobs [OK]
Common Mistakes:
Using external cron instead of Jenkins triggers
Putting shell commands in post-build actions
Confusing 'Poll SCM' with scheduled builds
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.