Jenkins
Course Index
Index

Jenkins Interview Questions

1. What is Jenkins?

Jenkins is an open-source automation server used to implement Continuous Integration (CI) and Continuous Deployment (CD). It helps automate software builds, testing, and deployment through pipelines.

2. What is the purpose of a CRON expression in Jenkins?

CRON expressions in Jenkins are used to schedule jobs. They define the time and frequency of job execution using a syntax similar to Linux cron jobs. Example: H 12 * * 1-5 runs a job every weekday at noon.

3. How do you set up your automation framework with Jenkins?

Steps to integrate an automation framework with Jenkins:

  • Install necessary plugins (e.g., JUnit, TestNG, Maven).
  • Configure Source Code Management (SCM) (Git, GitHub, GitLab, SVN).
  • Define a build script (Maven, Gradle, or custom script).
  • Set up test execution commands.
  • Configure reports generation and post-build actions.

4. What are the types of Jenkins jobs?

Jenkins provides various job types:

  • Freestyle Job: Basic job type for simple automation.
  • Pipeline Job: Uses Groovy-based scripting to define workflows.
  • Multibranch Pipeline Job: Automates CI/CD for multiple branches.
  • Build Pipeline Job: Chains multiple jobs together.
  • Folder Job: Organizes multiple jobs in a structured manner.

5. What is a Jenkins pipeline?

A Jenkins pipeline is a scripted process to define and automate build, test, and deployment stages. It can be declarative or scripted.

6. What are the advantages of using Jenkins?

  • Open-source and highly extensible with plugins.
  • Supports distributed builds (master-agent architecture).
  • Enables Continuous Integration and Continuous Deployment (CI/CD).
  • Compatible with version control tools (Git, GitHub, SVN).

7. What is a Jenkins agent (slave), and how does it work?

An agent (slave) is a remote machine that executes Jenkins jobs, offloading the workload from the master. Communication is managed via JNLP, SSH, or Docker.

8. What is a Jenkins plugin, and how do you install it?

A Jenkins plugin is an extension that adds new features. To install:

  1. Go to Manage Jenkins > Manage Plugins.
  2. Search for the required plugin.
  3. Click Install without Restart.

9. How do you schedule a build in Jenkins?

You can schedule builds using:

  • CRON expressions in the Build Triggers section.
  • SCM polling to check for changes.
  • Webhook triggers from GitHub/GitLab.

10. What is the difference between freestyle and pipeline jobs in Jenkins?

Feature Freestyle Job Pipeline Job
UI-based setup Yes No (Code-based)
Flexibility Limited Highly customizable
Version Control Not directly supported Stored as a Jenkinsfile

11. What is the difference between declarative and scripted pipelines in Jenkins?

Feature Declarative Pipeline Scripted Pipeline
Syntax Structured (easier to read) Groovy-based (more flexible)
Example pipeline { agent any } node { stage('Build') { ... } }

12. How do you secure Jenkins?

  • Enable Role-Based Access Control (RBAC).
  • Use Matrix-based Authorization.
  • Secure with TLS/SSL.
  • Limit anonymous access.
  • Store credentials securely in Jenkins Credential Store.

13. How do you set up Jenkins with GitHub or GitLab for CI/CD?

  1. Install Git and GitHub/GitLab plugins.
  2. Add SCM URL in Jenkins Job.
  3. Configure Webhook triggers for automated builds.

14. How do you handle credentials securely in Jenkins?

Use Jenkins Credential Manager:

  • Store API keys, SSH keys, passwords securely.
  • Use withCredentials block in pipelines.

15. How do you implement parallel execution in Jenkins pipelines?

Groovy
Copy
pipeline {
  agent any
  stages {
    stage('Parallel Stage') {
      parallel {
        stage('Job 1') { steps { echo 'Executing Job 1' } }
        stage('Job 2') { steps { echo 'Executing Job 2' } }
      }
    }
  }
}

16. What is Blue Ocean in Jenkins?

Blue Ocean is a modern UI for Jenkins that simplifies pipeline visualization.

17. How do you monitor Jenkins logs and troubleshoot build failures?

  • View logs in Manage Jenkins > System Log.
  • Check Console Output for job logs.
  • Use jenkins.log under /var/log/jenkins/.

18. What is the Jenkinsfile, and why is it important?

A Jenkinsfile stores the pipeline as code, enabling version control and easier CI/CD management.

19. How do you integrate Jenkins with Docker and Kubernetes?

  • Install Docker Pipeline Plugin.
  • Use docker agent in pipelines.
  • Deploy Jenkins on Kubernetes via Helm charts.

20. How do you create and manage Jenkins shared libraries?

  • Store reusable pipeline functions in a Git repository.
  • Define libraries in Jenkinsfile as:

@Library('my-shared-library') _

21. How do you integrate Jenkins with tools like SonarQube, Nexus, or JFrog Artifactory?

  • Install relevant plugins.
  • Configure SonarQube Scanner for code quality checks.
  • Push artifacts to Nexus/JFrog using maven deploy.

22. How do you configure webhooks in Jenkins?

  • Enable GitHub/GitLab Webhook Plugin.
  • Add Webhook URL in repository settings.
  • Trigger builds automatically on repo updates.

23. How do you run a Jenkins job only when a specific file changes?

Use Git plugin with changeset:
when { changeset '**/config.xml' }