Jenkins Training

Jenkins Training

Jenkins is one of among the most popular automation servers today. Its project helps organisations to speed up the software development processes through control of the lifecycle and efficient management. 

It’s a open source CI tool which is written in Java and allows CI and delivery of projects.

A exclusive feature of Jenkins is its massive library of Plugins which enable Jenkins to be used in projects that are written in languages other than Java and to integrate with other popular technologies. These will be supported by an active community that networks online, learns and grows together.

Features of Jenkins:

  • Jenkins is easy to install on different operating systems – No Hassle
  • Jenkins has very simplified and easy-to-use user interface – Not complex 
  • Always be updated with frequent release cycles – Upgradability 
  • It is easy to use Jenkins as it supports Web-based GUI, Command line interface, Rest API for Python, XML and JSON – Communicate

3 Days

Participants should have familiarity with Java development practices

The Project Build and Release Automation 

  • The components of build system
  • The build automation process
  • Overview on Apache Maven and Ant and Gradle
  • Unit and Integration testing 
  • Overview on GIT SCM
  • Product Delivery pipeline  
  • Code integration 

What is Continuous Integration?   

  • Iintroduction to Continuous Integration 
      • What Is CI?
      • Why CI?
      • CI Philosophy
      • Advantages of CI in Software Development
  • How to Implement CI 
      • Setting Up a CI Environment
      • CI Tools
      • Automated Builds
      • Automated Tests
      • Code Repository
      • Continuous Integration builds 
      • Integration of Automated Testing With CI
      • Continuous Delivery mechanism
      • Continuous Improvement with Feedback Loop and Improvement Cycle

The CI process practices

  • What you need for CI
  • General Working Procedure
  • Team involvement and notifications 
  • Commit Code Frequently
  • Don’t Commit Broken Code
  • Run private Builds First
  • Fix Broken Builds immediately
  • Avoid Getting Broken Builds
  • Write Automated Developer tests
  • All Tests Must Pass
  • Automate as Much as Possible
  • Shared Ownership
  • Build automation 

The Jenkins CI Server

  • Jenkins Architecture and Features
  • Jenkins installation and configuration  
  • Jenkins plug-ins configuration
      • Security plug-ins
      • Maven Plug-in
      • Git Plug-in
      • Cobertura
      • Jacoco
      • MS Build
      • Pipeline plug-in
  • Assign user roles for admin and monitoring.
      • Create Freestyle Build job
      • The project build configuration 
      • Jenkins GIT SCM integration
      • Configure the Trigger for build process 
      • Configure pre-build and post-build activities with ant and other tools
      • Execute the JUnit test cases/suites
      • Integrate with code quality tools Sonar, Find bugs, PMD, Check Style etc.
      • Generate test reports.
      • Monitor the build jobs
      • Build console monitoring
      • Jenkins Groovy API Overview
      • Using Groovy console for monitoring and update
      • Use groovy scripts

Maven Job

  • Maven job with application Dependencies
  • Working with Local/Remote Repository 
  • Maven Central Repository usage
  • Build Java project with Maven
  • Configure pre and post build activities
  • Deploy the artifacts
  • Build and monitor the job
  • Build job dependencies
  • Upstream and downstream triggers
  • The effects of build failures
  • Define a pipeline of jobs

High Level Pipeline Job

  • The pipeline plug-in update
  • Generate configuration
  • Manage repository
  • Manage build activities
  • Build artifacts
  • Create delivery pipeline from development job
  • Define series of build jobs
  • The code to manage the infrastructure 
  • Execution and monitoring 

Parameterized Jobs

  • Configure build with external inputs
  • Create a parameterized job
  • Configure external parameters String, Boolean, Choice, file, job name etc.
  • Execute another build job
  • Read the parameters during build as environment values 
  • Apache ant script
  • Groovy Console
  • Use plug-in for parameterized customization
  • The execution of parameterized job

Groovy in Jenkins

  • Role of groovy in Jenkins 
  • Groovy language basics  
  • The Groovy Interpreter and architecture 
  • Classes and Scripts 
  • Execute groovy scripts 
  • Java Integration
  • Groovy Applications
  • Database Operations 
  • Operator overloading
  • Execute groovy scripts in Jenkins Groovy console
  • Jenkins Groovy plug-in
  • Execute groovy scripts as build activity  

Jenkins Advanced

  • Configure Non-Java builds such as C++ / .net applications
  • Jenkins plug-ins architecture
  • Write your own plug-in 
  • Distributed Builds on Master-Slave nodes 
  • Restrict the job execution on a node
  • High availability / Clustering overview