Home  >  Article  >  Web Front-end  >  Continuous integration of Jenkins+Node.js

Continuous integration of Jenkins+Node.js

php中世界最好的语言
php中世界最好的语言Original
2018-03-06 16:13:021605browse

This time I will bring you the continuous integration of Jenkins+Node.js, what are the precautions of continuous integration of Jenkins+Node.js, the following is a practical case, let’s take a look one time.

First of all, we need to understand what is continuous integration(Continuous integration)

The proposer, Martin Fowler himself, defines continuous integration as follows: Continuous integration is a software development practice, that is, team development Members integrate their work frequently, usually at least once per day per member, which means multiple integrations may occur per day. Each integration is verified through automated builds (including compilation, release, and automated testing) to detect integration errors as quickly as possible. Many teams find that this process can greatly reduce integration issues, allowing the team to develop cohesive software faster.

As the complexity of software development continues to increase, how to better collaborate among team development members to ensure the quality of software development has gradually become an unavoidable issue in the development process. In particular, agile development (Agile) is becoming more and more popular in the field of software engineering. How to quickly adapt to and ensure the quality of software in the changing needs is also particularly important.
Continuous integration is a software development practice for this type of problem.

The core value of continuous integration is:

Reduce risks and reduce repetitive processes

Generate deployable software at any time and anywhere

Enhance the project Visibility

Build the team's confidence in developing products

Principles of continuous integration

All developers need to do local builds on their local machines and then submit them to version control repository to ensure that their changes do not cause continuous integration to fail.

Developers submit code to the version control repository at least once a day.

Developers need to update code from the version control repository to the local machine at least once a day.

A dedicated integration server is required to perform integrated builds, and multiple builds are performed every day.

Every build must pass 100%.

Every build can produce a releasable product.

Fixing the failed build is highest priority.

Testing is the future, the future is testing

Jenkins

Jenkins is an open source project that provides an easy-to-use continuous integration system to free developers from complex integration Free yourself from it and focus on the more important business logic implementation. At the same time, Jenkins can implement monitoring errors in integration, provide detailed log files and reminder functions, and can also use charts to vividly display the trend and stability of project construction.

Installation

Download the latest war file from the Jenkins official website

Run java -jar jenkins.war

If the operation is successful, a new .jenkins will be created in the user's personal directory /Folder

Visit localhost:8080 to reach the Jenkins homepage

System Management>> System Settings

Here is the QQ mailbox configuration as an example, modify it according to your own mail provider

Set a valid URL and sending email address

Note that the SMTP server is the server of the system administrator’s email provider

Install the Git plug-in

System Management>> ; Plug-in management>> Optional plug-in

Find the Git plugin, check it, install it directly, and restart Jenkins

Jenkins provides many excellent plug-ins. Here is a good introduction to Jenkins Job Articles related to plug-ins

If you feel that the existing plug-ins cannot meet your needs, you can develop them yourself (recommended: A brief analysis of Jenkins plug-in development)

User and Security

System Management> ;> Manage Users

Can add and manage users

System Management>> Configure Global Security(Security Settings)

Can manage user permissions in conjunction with the security matrix

DEMO

Create a new freestyle project

Configure the source code, here is git as an example, Credential can configure account password, ssh


https ://github.com/wuyanxin/jenkins_nodejs_test is a simple sample code, including examples of startup failure, startup success, test failure, and test success

BuildTriggerI chose the
Timer mode. The configuration syntax is such as crontab. You can click the question mark on the right to view the instructions. By the way, to trigger the remote build, it can be triggered by the corresponding URL of the remote request. This can be used with the hook of the repository. The automated test of the new commit

build can be done through four Build in various ways, batch, shell, ant, maven, choose according to your own needs.
I use shell, you can add multi-step build and execute it in sequence

After the build you can package, build other projects, publish test reports, publish javadoc, git release, Email reminder
Here we will just talk about email reminder

Email reminder

In this way, we have completed the establishment of the continuous integration environment. If the startup fails or the test fails, an email notification will be sent.

I believe you have mastered the methods after reading these cases. For more exciting information, please pay attention to other related articles on the php Chinese website!

Related reading:

How to implement asynchronous file upload in html

How to achieve the effect of scrolling fonts and pictures with the marquee element

How to set the width attribute for span tag style

The above is the detailed content of Continuous integration of Jenkins+Node.js. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn