CI notes

 CI  (Continues Integration)

==========================


    CI is process in which all development activities are integrated at given point of time by compiling and building the project well tested.

    

    Basic idea

     

      --Ensure there is no compilation issue at the end of the day by numerous check In made by developers to code repository.

      --enable to Identify compilation issue at early stages of development process.

      

      Main aim :

      

         ---To eliminate all the integration problems.

              -- each integration build and deploy automatically.


Advantages of CI


--No longer integration process.

--Frequent deployment process easier and faster.

--Lot of bad code smell and bugs can be reduced at the early stages of development.

--Easy to implement by using the tools like Jenkins (Hudson) and cruise control.

Jenkins:


In -order to create environment for the project with CI enabled , a tool is required.

   Jenkins---a open source tool to enable continues integration.

    --a server based system running in a apache tomcat (servlet container)

    --It supports SVN,GIT,Mercurial,Clearcase .

    --First time started by a developer called kuhsoke kawaguchi.

   

   

What Jenkins does?


   Primary job is to execute sequence of steps configured based on the triggers.

   

   1)Build and compile the code with ANT,MAVEN,GRADEL 

   2)Run internal shell scripts.

   2)archive the resultant builds.

   3)Run and monitor integration test.

   4)stop build process if any integration test fails.

   5)Notify the user about the build success or failure.

   

   

Jenkins Focus on ?



--continues building s/w -- i.e to create continues integration env.    

--to execute JOBs ---i.e Monitor and  execute external jobs defined(CRON JOBS)

Jenkins Features:


1. Easy to install and  configure

2.Readable permanent links for build details

3.Junit test support

4.tagging support for successful build

5.File fingerprint to manage dependencies

6.plug in support.

7.Distributed builds.

8.Notifications

Jenkins Best practices:


1.Always secure Jenkins --user authentication.

2.Use file fingerprint to manage dependencies.  (track which file version is used in which build.)

3.Integrate Jenkins with issue tracking tool like JIRA.

4.configure Jenkins to generate trend report.

5.setup diff jobs for maintenance and development projects.

6.Archive unused jobs befor deleting.

7.setup mail Notifications for all developers.

8.tag, branch baseline after each successful build.


 


   

   

       

   

   

   

   

   


         

      

      


Comments