Jenkins持续集成nodejs项目

1 工具及环境

操作系统:CentOS7
软件:jenkins,nginx,git,nodejs,gogs
其他工具包:JDK1.8

2 安装Jenkins

root用户在home目录下创建jenkins目录,到官网下载Jenkins的war包。

mkdir /home/jenkins
cd /home/jenkins
wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war

jenkins需要jdk8以上的版本才能执行,将下载的jdk8拷贝到jenkins目录中(因为系统中有个7版本的jdk,且设置了java的环境变量,所以后续的步骤是使用jdk的绝对路径启动jenkins)。

tar -zxvf jdk-8u201-linux-x64.tar.gz 
mv jdk1.8.0_201/ jdk1.8

使用nginx做jenkins的反向代理,nginx的配置

server {
    listen 80;
    server_name jenkins.example.com;
    location / {
        proxy_pass http://127.0.0.1:8500;
    }
}

启动jenkins,设置监听8500端口

jdk1.8/bin/java -jar jenkins.war --httpPort=8500

这里我用root用户去启动jenkins,jenkins的工作目录会在/root/.jenkins中,上面的命令是在前台启动jenkins,且操作不方便操作,下面将采用服务的方式将jenkins添加到systemctl中,新建/etc/systemd/system/jenkins.service文件

[Unit]
#服务描述
Description=Jenkins service

[Service]
# 服务类型
Type=simple

# 启动用户和组
User=root
Group=root

# 工作目录,这里要是使用绝对路径
ExecStart=/home/jenkins/jdk1.8/bin/java -jar /home/jenkins/jenkins.war --httpPort=8500

# 添加到的组,没有这个会systemctl enable不起
[Install]
WantedBy=multi-user.target

启动jenkins服务,添加到开机自动启动

systemctl daemon-reload
systemctl start jenkins.service
sysetmctl enable jenkins.service

现在通过jenkins.example.com就能访问jenkins了,首次登陆需要输入密码,

《Jenkins持续集成nodejs项目》 首次运行jenkins

密码存放在上图中红色部分的文件中,输入密码后,点击继续,安装插件,这里我使用的是推荐插件,如果有插件安装不成功也没有关系,后面可以在jenkins中单独安装,然后创建一个管理员账号。

3 安装持续集成工具

这里我使用的是gogs作为版本库,需要的插件和外部工具如下

名称类型说明
gogs外部工具存储源代码
git外部工具负责向版本库gogs中拉取代码
Nodejsjenkins插件自动设置node的环境变量
Gogs-webhookjenkins插件能够接受gogs的webhook,达到自动构建的目的

3.1 安装git和node和插件

yum install git

使用rpm -ql git查看git的安装路径是/usr/bin/git,记住这个路径,后面在jenkins的全局工具设置是需要使用。运行jenkins后,在插件管理中,搜索安装nodejs,gogs插件

3.2 配置Jenkins

在全局工具配置中配置git和node,配置git时需要用到上面提到的git路径,node这里采用自动安装。

《Jenkins持续集成nodejs项目》 git插件
《Jenkins持续集成nodejs项目》 node插件

在凭据中设置gogs的登录账号和密码,保证git能够从代码仓库中能够迁出源码。

4 创建jenkins任务

在主页中,点击创建一个新任务,选择自由风格的软件项目

《Jenkins持续集成nodejs项目》 创建任务-选择风格

进入配置页面后,由于安装了gogs-webhook的插件,可以看到有gogs webhook的选项,这里什么都不选择。

《Jenkins持续集成nodejs项目》 gogs-webhook设置

源码管理中,选git,然后输入要构建的库的地址,选择上面我们在凭证栏中输入的凭证。

《Jenkins持续集成nodejs项目》 源码管理

设置构建环境

《Jenkins持续集成nodejs项目》 构建环境

构建

《Jenkins持续集成nodejs项目》 构建设置

5 添加自动构建

在jenkins中安装了gogs webhook插件,它用于接收gogs发出的webhook通知,但jenkins收到gogs发出的通知后,会自动构建。具体需要在gogs中设置一个webhook

《Jenkins持续集成nodejs项目》 gogs设置

当这个项目的有提交时,gogs会向上面的jenkins地址发送通知,jenkins在收到通知后会根据项目名自动构建项目。

    原文作者:书上得来终觉浅
    原文地址: https://www.jianshu.com/p/133cebbb21c2
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞