Jenkins - 持续集成环境搭建

1. Jenkins 概述

    Jenkins是一个开源的持续集成工具。持续集成主要功能是进行自动化的构建。自动化构建包括自动编译、发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件。

2. Jenkins功能

主要功能:

  l   代码库(svn/git等)代码发生变化后更新代码至jenkins工作目录

  l   代码变化后启动编译或设置定时编译

  l   输出编译结果,包括生成的目标文件

  l   邮件通知构建结果

3. Jenkins构建过程

    1. 向代码库提交代码,代码库变化触发构建

    2. 定时触发构建,到定时的时间点触发构建

    3. Jenkins更新至最新代码

    4. 启动编译,失败则停止构建。邮件反馈失败信息

    5. 输出编译产物,WEB提供目标文件下载

4. Jenkins使用

4.1 Jenkins启动

    1. 下载Jenkins软件jenkins.war。

    2. Java环境配置

    3. Linux shell或windows cmd执行java -jar jenkins.war

    4. 指定端口启动java -jar jenkins.war --httpPort=port

Tips:jenkins工作目录默认在启动用户home目录,jenkins操作权限与启动用户一致。

4.2 Jenkins web

    登录web,首次访问提示输入administration password 在shell中启动日志会提供,复制登录后创建admin用户。

    Jenkins搭建完成后访问输入用户名和密码登录。

4.3 Jenkins界面

主界面说明:

项目界面说明:

单次构建界面说明:

Jenkins使用主要是操作这三个页面,可以完成以下内容:

    l 近期代码构建结果查看

    l 手动立即启动构建

    l 获取构建结果目标文件

    l 查看单次构建的代码变化

    l 获取构建日志进行问题定位

5. Jenkins配置

5.1 系统配置

    主界面进入系统配置,主要可更新和下载当前的插件和添加新的jenkins用户,系统设置内可配置jenkins工作目录及邮件相关配置,以配置好可不做修改。

5.2 项目配置

5.2.1 创建项目

    项目配置需要熟悉当前项目的编译环境,配置项目的jenkins环境即配置当前项目的编译环境。

新建jenkins项目,选择自由风格的软件项目。已存在的项目可以在项目页面点击配置进入修改。

5.2.2 源码配置

    在源码管理配置代码库,提供svn的url以及有Read权限账户,所有设置均需要插件支持,如果找不到配置选项,可以查看是否安装的对应功能的插件。

    代码更新下载在jenkins的工作目录下/home/Jenkins/.jenkins/workspace,其他构件操作均以工作目录下代码为基础。

5.2.3 设置构建触发器

选择Poll SCM

* * * * *为每分钟检查一次SVN代码,有更新则启动构建。

* * * * *可以替换为具体时间

第一个参数代表的是分钟 minute,取值 0~59;

第二个参数代表的是小时 hour,取值 0~23;

第三个参数代表的是天 day,取值 1~31;

第四个参数代表的是月 month,取值 1~12;

第五个参数代表的是星期 week,取值 0~7,0 和 7 都是表示星期天。

由此可以配置定时构建

如0 * * * * 表示的就是每个小时的第 0 分钟执行一次构建。

5.2.4 构建配置

    构建配置即配置代码的编译过程,首先需要在jenkins机器上配置好编译环境,先在机器上手动编译,确认编译环境配置完成,可以进行当前项目的代码编译后,再进行配置。

    在构建选项上可以选择不同的工具进行构建,这些都需要插件的支持。因为项目是由命令行执行编译命令进行构建的,所以选择Execute shell执行命令进行构建,也可以配置其他构建工具环境进行构建。

5.2.5 输出归档

    构建成功后需要将目标文件进行归档,否则在项目页面是无法显示和下载最后一次成功的构建结果选项。

    这步在构建后进行操作,在构建后操作中选择archive the artifacts,填入需要归档的文件的正则表达式进行过滤。多个目录文件表达式可使用“,”进行分割。

5.2.6 邮件通知

    在构建结束后,可以配置邮件,进行邮件通知。提示开发者构建结果,及时处理。

    在使用邮件通知时需要先配置

    主页面进入系统管理的系统设置页面,设置邮件通知,通知邮件将由这个邮箱发出,这个邮箱必须与jenkins location配置中的邮箱一致。

    配置项目中的邮件收件人

    可以使用“,”分割多个收件人。

6. Q&A

6.1. 忘记用户密码

    /home/jenkins/.jenkins/users目录下有所有用户信息,打开对应用户的xml配置文件,找到passwordHash内容,修改为:

    #jbcrypt:$2a$10$DdaWzN64JgUtLdvxWIflcuQu2fgrrMSAMabF5TSrGK5nXitqK9ZMS

    密码将被设置为111111

6.2. 如何手动安装插件

    把文件放在/home/jenkins/.jenkins/plugins目录下,重启jenkins即可。

6.3. 邮件配置测试一直不成功

    管理邮箱必须与jenkins location中邮箱一致,官网确认当前邮箱的SMTP服务器,端口以及是否使用SSL协议,最后查看当前邮箱是否开通IMAP/SMTP/POP/Exchange 服务。

6.4. Jenkins启动失败

    查看启动端口是否被占用,查看是否当前的java环境版本不支持当前版本jenkins。

请无视打码技术。 

转载注明出处:http://www.cnblogs.com/binchen-china/

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏左瞅瞅,右瞅瞅

Mysql5.5——xtrabackup主从同步

192.168.102.128 linux-node1.example.com (主)

1579
来自专栏pangguoming

Linux下如何修改Apache根目录

创建自己需要更改的新目录,并更改宿主权限为apache用户 chown -R apache:apache /mnt/www ? 2 停止Apache...

5126
来自专栏玄魂工作室

Hacker基础之Linux篇:基础Linux命令二

1. mv mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files)。 是Linux系统下常用的命令,经常用来备份文...

37210
来自专栏Java学习网

Android Push Notification实现信息推送功能

Android Push Notification实现信息推送功能 在之前的一篇文章中提到在Android中实现推送方式的解决方案,其中一个比较成熟的解决...

2735
来自专栏DT乱“码”

gitHub基本命令

一.要提交文件到github 必须配置本地配置文件 .git文件夹的 config ? 在config文件末尾加上 [user]     name=XXX ...

3766
来自专栏lgp20151222

consul怎么在windows下安装

1.去官网下载:https://www.consul.io/downloads.html 2.解压:

2364
来自专栏jeremy的技术点滴

使用create-react-app简化前端项目的建立

4115
来自专栏Kirito的技术分享

java实用小技巧(一)--远程debug

该系列介绍一些java开发中常用的一些小技巧,多小呢,从不会到会只需要一篇文章这么小。这一篇介绍如何使用jdk自带的扩展包配合Intellij IDEA实现远程...

4034
来自专栏白驹过隙

Jenkins - 持续集成环境搭建

38710
来自专栏不想当开发的产品不是好测试

通过maven test 报org.apache.ibatis.binding.BindingException: Invalid bound statement

背景 直接使用eclipse工具去执行,没有问题,通过testng.xml去执行,没有问题,但通过mvn clean test执行,就报错,提示org.apac...

23610

扫码关注云+社区

领取腾讯云代金券