Turn - a Jenkins study notes - - What is Jenkins?

Jenkins - continuous integration server

 

The concept of continuous integration

 

1. What is Continuous Integration

 

As the complexity of software development continues to increase, how to better work together among team development members to ensure the quality of software development has gradually become an unavoidable problem in the development process. Especially in recent years, Agile has become more and more prosperous in the field of software engineering, and how to quickly adapt to and ensure the quality of software in the changing requirements is also particularly important.

Continuous integration is a software development practice that addresses this type of problem. It advocates that team development members must integrate their work frequently, even multiple integrations per day. And each integration is verified through automated builds, including automatic compilation, release, and testing, so integration errors are discovered as quickly as possible, allowing teams to develop cohesive software faster.

The core values ​​of continuous integration are:

  1. Any link in continuous integration is automatically completed without too much manual intervention, which is conducive to reducing repetitive processes to save time, cost and workload;
  2. Continuous integration ensures that the code submitted by team members at each point in time can be successfully integrated. In other words, software integration problems can be discovered at any point in time, making it possible to release deployable software at any time;
  3. Continuous integration can also benefit the development trend of the software itself, which is especially important in the context of unclear requirements or frequent changes. The quality of continuous integration can help the team to make effective decisions and build the team's confidence in the development of the product.

2. Principles of Continuous Integration

The principles of continuous integration generally accepted by the industry include:

1) Code submitted by members of the software assurance team that requires version control will not cause the integration to fail. Common version control software includes IBM Rational ClearCase, CVS, Subversion, etc.;

2) Developers must submit code to the version control library in a timely manner, and must frequently update the code from the version control library to the local;

3) A dedicated integration server is required to perform integration builds. According to the specific reality of the project, the integrated build can be directly triggered by software modification, or it can be started regularly, such as every half hour;

4) The success of the build must be guaranteed. If the build fails, fixing errors in the build process is the highest priority job. Once fixed, a build needs to be started manually.

 

3. Components of a continuous integration system

Thus, a complete build system must include:

  1. An automated build process that includes automatic compilation, distribution, deployment, and testing.
  2. A code repository, that is, version control software is needed to ensure code maintainability, as well as a repository for the build process.
  3. A continuous integration server. Jenkins introduced in this article is a continuous integration server that is simple to configure and easy to use.
 
2. Introduction to Jenkins
Jenkins is an open source project that provides an easy-to-use continuous integration system that frees developers from complicated integration and focuses on more important business logic implementations. At the same time, Jenkins can monitor the errors existing in the integration, provide detailed log files and reminder functions, and visualize the trend and stability of project construction in the form of charts.
 
3. Comparison with similar software

1 Jenkin cruisecontrol

Jenkins and cruisecontrol are both CI tools, and they play the same role in CI.

As a new generation of CI tools, Jenkins gradually began to replace cruisecontrol. Both are java programs, but:

1. Jenkins provides a more friendly user interface, while cruisecontrol is almost as bad in interface as there is none.

2. The built-in functions of Jenkins provide great convenience. Whether it is a new build or daily use, most of the time you need to do is just click on the user interface.

New builds in cruisecontrol are done by creating config.xml. It only provides very limited functionality, and many times you will find that you need to do a lot of work yourself.

3. As a thriving open source project, Jenkins has a large number of plugins. When you find you need a feature that Jenkins doesn't provide natively, a search for plugins will always pay off. Many popular tools such as JBehave and cobertura provide jenkins plugins.

There are very few plugins for cruisecontrol.

4. The friendly user interface of Jenkins makes the learning cost very little, and you can start your work in the shortest time.

 

In fact, Jenkins is one of the best open source projects I've seen, with its clean and practical user interface design, well-documented, and rich plugins. When you start using it, you will love it.

When you need a build tool, Jenkins is pretty much the go-to right now.

 

2)Jenkins和Hudson

Jenkins起源于Hudson。Hudson在商业软件的路上继续前行,而Jenkins则作为开源软件,从hudson分支出来。

因此现在的jenkins和hudson非常类似,但是随着二者各自的发展,已经有了一些不同。

 

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326900930&siteId=291194637