Using Jenkins — Jobs, Views, and Folders¶
Overview¶
Learn the Jenkins user interface: dashboard, jobs, build history, views, folders, and where credentials appear.
Freestyle jobs are classic click-configured projects. Pipeline jobs (especially Pipeline-as-code) are the modern default for Cloud and DevOps teams. Views filter the dashboard; folders group jobs for teams or products. This module orients you before Declarative Pipeline deep dives.
This is a core tutorial in Module 3 · Using Jenkins of the REBASH Academy Jenkins for Cloud & DevOps Engineers series — written for Cloud, DevOps, Platform, and SRE engineers.
Prerequisites¶
- Completed prior modules in this track where linked in frontmatter
- Git and Docker for lab workflows
- Running Jenkins LTS from Installing Jenkins LTS when a live controller is required
Learning Objectives¶
By the end of this tutorial, you will be able to:
- Navigate the dashboard, job pages, and build history
- Contrast Freestyle vs Pipeline job types for new work
- Create a view and explain when folders help multi-team controllers
- Locate credentials entry points without storing secrets in job config text
Architecture¶
This topic’s control points and relationships are shown below.
Theory¶
What it is¶
The dashboard lists jobs (and folders). Each job has configuration, build history, and console output per build. Views (list, my view) filter what you see. Folders (Folders plugin, usually installed with suggested plugins) nest jobs and can hold folder-scoped credentials and shared library configuration later.
Freestyle jobs bind SCM, build steps, and post-actions in the UI. Pipeline jobs run a Jenkinsfile (inline or from SCM). New greenfield work should be Pipeline; Freestyle remains for legacy understanding only.
Why it matters¶
A flat list of hundreds of jobs becomes unusable. Folders mirror org structure (product, environment, team). Views give individuals a focused dashboard. Knowing where credentials are managed prevents pasting tokens into Freestyle shell steps — a common audit finding.
How it works¶
- Open the dashboard after login; note New Item, Manage Jenkins, and People.
- Create a simple Pipeline job with an inline
echostage (or wait for Module 4’s fuller example). - Run a build; open Console Output and build history.
- Create a List View that includes your job.
- Optionally create a folder and move the job — observe the URL path change.
See Using Jenkins in the User Handbook.
Key concepts and comparisons¶
| Concept | Use |
|---|---|
| Freestyle | Legacy / simple UI builds |
| Pipeline | Jenkinsfile; reviewable as code |
| View | Personal or team dashboard filter |
| Folder | Namespace jobs; scope credentials |
| Build history | Audit trail of runs |
Credentials appear under Manage Jenkins → Credentials (and folder credentials). Prefer credential IDs referenced from Pipeline over plaintext.
Common pitfalls¶
- Creating every job at the root of a shared controller.
- Storing secrets in Freestyle shell steps or job descriptions.
- Assuming Blue Ocean is required — classic UI + Pipeline is enough.
- Ignoring failed builds in history when diagnosing “it worked yesterday”.
Hands-on Lab¶
Create a workspace for this tutorial.
Focus: create a folder, a Pipeline job stub, and a list view
Step 1 – Primary exercise¶
# Document UI checklist while controller from module-02 runs
cat > ui-checklist.md << 'EOF'
# Using Jenkins checklist
- [ ] Dashboard loads
- [ ] New Item → Folder `rebash-labs`
- [ ] New Item → Pipeline `hello-pipeline` inside folder
- [ ] Build once; open Console Output
- [ ] Create List View including hello-pipeline
- [ ] Credentials link found under Manage Jenkins (do not store secrets yet)
EOF
# Optional: use jenkins-cli later; for now validate notes
grep -E 'Folder|Pipeline|Credentials' ui-checklist.md
test -f ui-checklist.md
Step 2 – Capture job URL pattern¶
cat > url-pattern.txt << 'EOF'
Root job: /job/hello-pipeline/
Folder job: /job/rebash-labs/job/hello-pipeline/
View: /view/my-labs/
EOF
cat url-pattern.txt
Final cleanup¶
# Keep ~/rebash-jenkins/ for later tutorials; stop Compose only if you are done with the controller
# docker compose -f ~/rebash-jenkins/module-02/docker-compose.yml down # optional; omit -v to keep JENKINS_HOME
Validation¶
- Lab commands run under
~/rebash-jenkins/module-03/ - You can explain each Theory section in your own words
- You used current Jenkins LTS / Pipeline practices where they apply
- You can describe one production failure mode for this topic
Code Walkthrough¶
Production practice for Using Jenkins — Jobs, Views, and Folders always combines:
- Inspect before you change (status, plan, logs, dry-run)
- Prefer reversible, documented changes (Git, Jenkinsfile, JCasC)
- Capture evidence (console logs, plan artefacts) for handovers
- Prefer current LTS and supported plugins over legacy shortcuts
- Least privilege — escalate credentials only when required
Keep runbooks short enough to follow under pressure. Automate checks; keep humans for judgement.
Security Considerations¶
- Treat Jenkins credentials and cloud tokens as privileged — never commit them
- Keep builds off the built-in node; isolate untrusted pull requests
- Prefer short-lived auth (OIDC-style patterns, scoped RBAC) over long-lived keys
- Validate blast radius before apply/deploy/delete operations
- Collect audit logs; limit who can administer the controller
Common Mistakes¶
Secrets in Freestyle shell
Use the Credentials store and bind credentials in Pipeline; never paste tokens into build steps.
Unbounded root-level jobs
Use folders early so permissions and libraries can scope later.
Relying on Blue Ocean
Treat Blue Ocean as legacy; learn classic UI and Pipeline stages.
Best Practices¶
- Encode Using Jenkins — Jobs, Views, and Folders changes as code and review them in pull requests
- Prefer Jenkins LTS and pinned agent/tool versions
- Keep builds off the controller; use labelled agents
- Least privilege for credentials and cluster/cloud access
- Destroy or stop lab resources; keep
~/rebash-jenkins/notes for the track
Troubleshooting¶
| Symptom | Likely cause | Fix |
|---|---|---|
| Job stuck in queue | No matching agent/label or executors busy | Check nodes, labels, and executor counts |
| Checkout / SCM failure | Credentials, URL, or permissions | Verify credential ID and repository access |
| Pipeline CPS / script error | Syntax, sandbox, or library mismatch | Read error line; validate Jenkinsfile; pin library version |
| Plugin / UI broken after update | Incompatible plugin set | Restore backup; disable suspect plugin on test controller |
| Disk full on agent/controller | Workspaces or old builds | Clean workspaces; trim build retention |
Summary¶
Using Jenkins — Jobs, Views, and Folders is essential for Cloud and DevOps engineers operating Jenkins. Practise the lab until the inspection and change path is muscle memory, then continue the track.
Interview Questions¶
- When would you still see Freestyle jobs in an enterprise?
- How do folders help multi-team Jenkins controllers?
- Where should credentials live instead of job shell steps?
- What does build history give you during an incident?
- What is the difference between a view and a folder?
Sample answer — question 2
Folders namespace jobs, can hold folder credentials and library config, and make authorization matrices manageable per team.
Sample answer — question 3
Use Manage Jenkins → Credentials (or folder credentials) and reference credential IDs from Pipeline steps such as withCredentials.