Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。 

一、相关概念

1.1 Jenkins概念:

Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台。这是一个免费的源代码,可以处理任何类型的构建或持续集成。集成Jenkins可以用于一些测试和部署技术。Jenkins是一种软件允许持续集成。

1.2 Jenkins目的:

1、持续、自动地构建/测试软件项目。
2、监控软件开放流程,快速问题定位及处理,提示开放效率。

1.3 特性:

开源的java语言开发持续集成工具,支持CI,CD。
易于安装部署配置:可通过yum安装,或下载war包以及通过docker容器等快速实现安装部署,可方便web界面配置管理。
消息通知及测试报告:集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知,生成JUnit/TestNG测试报告。
分布式构建:支持Jenkins能够让多台计算机一起构建/测试。
文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。
丰富的插件支持:支持扩展插件,你可以开发适合自己团队使用的工具,如git,svn,maven,docker等。

1.4 产品发布流程:

产品设计成型 -> 开发人员开发代码 -> 测试人员测试功能 ->
运维人员发布上线
持续集成 (Continuous integration,简称CI)
持续交付(Continuous delivery)
持续部署(continuous deployment)

网上大多数是关于.net web网站以及 java 跟android的
使用jenkins集成的,没有看到有关于ionic
项目使用jenkins集成项目,自己捣鼓一番后,写篇随笔记录下,也供各位有需要的朋友参考。

二、安装部署

2.1 yum安装

最低配置: 不少于256M内存,不低于1G磁盘,jdk版本>=8
安装jdk1.8

yum install -y java-1.8.0-openjdk && \
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/RedHat/jenkins.repo && \
rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key &&\
yum clean all && yum makecache && \
yum install -y jenkins && \
systemctl start jenkins

less /var/log/jenkins/jenkins.log //查询admin密码
访问 进行安装
jenkins相关目录:
rpm -ql jenkins #查看jenkins安装相关目录
安装目录/var/lib/jenkins
配置文件 /etc/sysconfig/jenkins
日志目录 /var/log/jenkins

2.2 下载war包安装

yum install -y java-1.8.0-openjdk && mkdir -p /usr/local/jenkins/ && \
wget -c -O /usr/local/jenkins/jenkins.war http://mirrors.jenkins.io/war-stable/latest/jenkins.war &&\
nohup java -jar /usr/local/jenkins/jenkins.war &

密码查看:/root/.jenkins/secrets/initialAdminPassword
访问 进行安装

2.3 docker形式安装

yum install docker -y  && systemctl start docker && \
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s && systemctl restart docker
docker search jenkins
docker pull docker.io/jenkins
docker run -d -p 8080:8080 docker.io/jenkins

docker exec -it 52873fa3dce4 /bin/bash
cat /var/jenkins_home/secrets #查看密码
访问 进行安装

2.4 相关工具安装

工具安装可在jenkins的web界面系统管理—管理插件—可选插件勾选需要的,也可以手动安装。

图片 1

a.git安装

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc-c++ perl-ExtUtils-MakeMaker wget autoconf -y
wget https://www.kernel.org/pub/software/scm/git/git-2.7.3.tar.gz
tar xf git-2.7.3.tar.gz
cd git-2.7.3
make configure
./configure --prefix=/usr/local/git
make profix=/usr/local/git
make install
echo "export PATH=$PATH:/usr/local/git/bin" > /etc/profile.d/git.sh
source /etc/profile.d/git.sh

使用Jenkins 的好处

b.maven安装

cd /usr/local/ && wget -c wget  http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz &&\
tar -zxf apache-maven-3.5.2-bin.tar.gz && \
echo "export PATH=$PATH:/usr/local/apache-maven-3.5.2/bin" > /etc/profile.d/maven.sh && \
source /etc/profile.d/maven.sh

mvn –version 查看版本

1.持续集成和持续交付

作为可扩展的自动化服务器,Jenkins可以用作简单的CI服务器,也可以转换为任何项目的连续交付中心。

c.svn安装

yum install subversion -y
mkdir /svnrepo
svnadmin create /svnrepo/project1      #创建一个新的Subversion项目

图片 2

图片 3

图片 4

启动项目1:svnserve -d -r /svnrepo/project1/
启动整个项目:svnserve -d -r /svnrepo/

2.安装方便

Jenkins是一个独立的基于Java的程序,可以开箱即用,具有适用于Windows,Mac
OS X和其他类Unix操作系统的软件包。

d.jdk安装

某些情况下会遇到openjdk无法编译java程序,或在编译中存在异常,需要我们手动安装jdk,首先去Oracle官网下载对应版本的jdk

tar -zxvf jdk-8u121-linux-x64.gz -C /usr/local && \
ln -sv /usr/local/jdk1.8.0_121 /usr/local/jdk1.8 && \
echo "export PATH=$PATH:/usr/local/jdk1.8/bin" >/etc/profile.d/java.sh
source /etc/profile.d/java.sh

3.轻松配置

Jenkins可以通过其Web界面轻松设置和配置,其中包括即时错误检查和内置帮助。

三、WEB界面配置

3.1 密码修改

 cd /var/lib/jenkins/users/admin          #此为admin用户的目录,也可以对应自己创建的用户
 vim config.xml                                  //定位到<passwordHash>那一行
 删除改行,改为
 <passwordHash>#jbcrypt:$2a$10$pDQks0ytOkCfmpdgpLygrOC3uY7i/XnZHBKRQDhrBPwKoN2f5Kz8C</passwordHash>

重启一下jenkins
新密码为admin

3.2 maven配置

针对之前手动安装的maven需要在web界面配置进行结合。
系统管理—全局工具配置(Maven Configuration)配置:

图片 5

此处为手动安装的maven,需要取消自动安装maven,name可以自定义,MAVEN_HOME指定下载安装的maven具体文件目录
图片 6

3.3 GIT配置

手动安装的git,web界面只需添加具体可执行路径即可
图片 7

3.4 jdk配置

对应手动安装的jdk,需要web配置java_home路径
图片 8

3.5 邮件配置

jenkins有内置的邮件功能但由于其对于成功的发布不会发送邮件可定制化程度低,在此直接配置插件邮件(Editable
Email
Notification),2.32以上版本的jenkins,常用的插件都已经在最初部署的时候安装了(如果你当初选择的是suggest的plugins)。
可以使用qq邮件服务器或163等其他邮件服务器,在此配置使用163邮箱,首先需要开启163邮箱的smtp服务。
图片 9
需要记录此处开启smtp时的密码。
在jenkins 系统管理—系统设置—Extended E-mail Notification
图片 10
在默认的触发器 Default Triggers
标签下,可以勾选邮件通知触发的情况,如任何情况下均需要选择always,也可以在仅失败情况下发送,也可以对应的邮件接受人不通,进行邮件分类。
以下的内容,如邮件主题,内容均可自定义,可以参考url:
至此全局插件邮件已经配置完毕,需要在具体的项目中使用此邮件进行发送通知。

四、实战php程序自动发布

4.1 插件安装

系统管理—管理插件—已安装
检查是否有“Git plugin”和“Publish Over
SSH”两个插件,如果没有,则需点击“可选插件”,找到它并安装
安装好两个插件后,点击“系统管理”– “系统设置”

4.2 SSH配置

系统管理—系统设置—Publish over SSH
在key内填写jenkins服务器的私钥,如果没有需要先在jenkins服务器生成私钥与公钥。ssh-keygen -t rsa回车后会在登录用户的家目录下生成一个.ssh
的目录,此目录下存在id_rsa私钥与id_rsa.pub公钥。且讲公钥发布至代码发布的目标服务器上ssh-copy-id -i /root/.ssh/id_rsa.pub root@IP

SSH Server配置
name:需要将php程序发布到目标服务器的名称,可自定义
Hostname:填写目录服务器的IP地址
Username:使用那个用户进行发布,此处为进行密钥互信的用户
Remote
Directory:此出为发布到目标服务器的相对根路径,建议填写/,防止后续填写路径异常。
图片 11
注:如果为多台目标服务器,可以继续添加,如果目标服务器存在代理,也可设置proxy

4.3 构建项目

新建Item—填入项目名称—选择构建一个自由风格的软件项目—确定
源码管理选择git
Repository URL
填写具体git上的仓库url,如果为私有,需要继续添加Credentials,如果为公有直接填写url即可,Credentials为none,

构建后够操作
选择(Send files or execute commands over SSH)
SSH Server选择目标服务器如:php-server
Source files:/ #将git拉去下来的原始文件
Remote directory:/var/www/html #发布到目标服务器的制定目录
Exec command:chown apache:apache -R /var/www/html/* #制定后续的操作
图片 12

此时可以选择Editable Email Notification来构建邮件通知。
在此处,之前的邮件主题,内容均可以自定义,在高级里面,选择邮件接受人。
图片 13

点击保存,并立即构建,可以点击console output查看日志
图片 14
图片 15
此时打开php程序发现程序文件已经成功发布到目标服务器上
图片 16
此时可以查看邮件也已经发送成功。
图片 17

局域网内利用GitLab+Jenkins自动生成GitBook并发布(Nginx) 
http://www.linuxidc.com/Linux/2016-05/131136.htm

Linux+Git+Maven+Jenkins+Neuxs自动化编译环境搭建
http://www.linuxidc.com/Linux/2016-02/128652.htm

CentOS6安装Jenkins 
http://www.linuxidc.com/Linux/2016-05/131365.htm

Jenkins服务器搭建指南-官方文档翻译整理 
http://www.linuxidc.com/Linux/2017-10/147281.htm

使用Jenkins配置Git+Maven的自动化构建
http://www.linuxidc.com/Linux/2016-02/128641.htm

Jenkins+Maven+Git搭建持续集成和自动化部署的配置手记
http://www.linuxidc.com/Linux/2015-06/118606.htm

Jenkins的分布式构建及部署——节点 
http://www.linuxidc.com/Linux/2015-05/116903.htm

使用Jenkins 自动部署发布 
http://www.linuxidc.com/Linux/2017-04/143257.htm

Jenkins
的详细介绍
:请点这里
Jenkins
的下载地址
:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-12/149947.htm

图片 18

4.插件

在更新中心拥有数百个插件,Jenkins与几乎所有的工具集成在连续集成和连续交付工具链中。

5.扩展

Jenkins可以通过其插件架构进行扩展,为Jenkins提供几乎无限的可能性。

6.分散式

Jenkins可以轻松地在多台机器上分配工作,从而帮助更快地在多个平台上进行构建,测试和部署。

 

 

在这里我使用jenkins可持续集成ionic 项目。

1.新建一个 项目

图片 19

 

 

2.源码管理,配置SVN

在这里代码我是在svn上的

图片 20

 

3.构建

增加构建步骤

图片 21

然后在构建里面 输入命令,就像自己开发的时候一样用命令执行生成apk.

前提,服务器上已经有android java环境。已经安装好ionic cordova npm nodejs
等,服务器上能够正常跑起来ionic 项目

npm install 

call cordova platform build android//前提是在服务器上的项目已经 cordova platform add android

copy D:test.keystore 项目下的 这个路径platforms/android //这一步是将证书复制过去

call cordova build android --release -- --keystore="test.keystore" --storePassword=123456

执行构建项目结果:

成功生成apk 发送邮件成功。

关于Jenkins邮件的配置请看这篇文章:Jenkins
配置邮件通知

图片 22

 

附上Jenkins的官网地址:https://jenkins.io

此随笔乃本人原创文章,如有疑问欢迎在下面评论,转载请标明出处。

如果对您有帮助请动动鼠标右下方给我来个赞,您的支持是我最大的动力。

 

相关文章