Jenkins搭建及使用

简介

持续集成(CI)

在引入CI之前,开发团队的很大一部分精力都被用在集成阶段。在这个阶段中,每个独立的开发者或者每个团队将他们开发的各个模块集成为一个可以工作的产品。在这个过程中可能会出现冲突。并且各种问题在这个过程中都会出现而且非常难以解决。最终可能导致发布延迟和其它无法预计的损失。持续集成的出现解决了这些问题。

持续集成是一个监视系统改变的软件。每当代码改变的时候,这个工具自动的编译和测试应用。如果出现了错误,会立即通知开发者,因此开发者能够立即修复问题。而且它还能自动地监测代码质量和测试覆盖率。可视化的代码质量度量方案能够鼓励开发者不断地改进他们的代码。

持续集成需要整个团队的维护,例如:

  • 自动化的不需要人为参与的构建过程。
  • 出现失败的构建需要立即修复。
  • 部署的过程需要自动化不需要人为参与。
  • 代码需要由足够的测试来保证代码的质量。

Jenkins

  • Jenkins是一个独立的开源自动化服务器,可以用来完成自动构建、测试和部署软件等任务。Jenkins可以通过本地系统包、Docker安装,也可以在安装Java运行时环境的机器上独立运行。

  • Jenkin提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上。同时Jenkins能实现监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性。

安装Jenkins

在官网下载war包http://updates.jenkins-ci.org/download/war/, 将jenkins.war放到Tomcat的webapp目录下,启动Tomcat。
经过上面的配置,就可以访问Jenkins了,在浏览器中输入 http://server ip:prot/jenkin,效果如下:

为保证安全,首次启动Jenkins会提示输入管理密码,根据提示将/home/test/.jenkins/secrets/initialAdminPassword 文件内容粘贴上点击继续,进入下一步配置:

选择install suggested plugins,等待安装完毕,如果有安装失败的可以跳过,之后可以手动根据需求安装。


设置管理员账户和密码。

设置完成后即可进入Jenkins主界面。

Jenkins配置

全局工具配置

选择系统管理-全局工具配置

JDK配置

为jdk起一个别名,选择版本安装即可。可以安装多个版本,在创建任务时选择使用的版本。编译Android系统时此处可以不设置,配置任务时使用环境变量的配置。

git 配置

在首次安装时选择install suggested plugins,默认已经安装了git,此处无需配置。

gradle

与jdk的配置类似,可以 选择安装的版本,可安装多个版本。

插件管理

Jenkins有很多插件可以选择,可根据具体需要安装。

git parameter

该插件可以选择需要构建的分支。
搜索Git Parameter安装即可。


在项目配置general-勾选参数化构建过程,为变量起一个名称,添加描述,Parameter Type选择Branch or Tag

源码管理-Branchs to build中点入刚才起的名称即可

选择需要构建的项目,此时会有Build with Parameters,选择该项。

选择需要构建的分支,点击开始构建即可。

gerrit trigger

当在Gerrit创建一个patch set时就出发Jenkins进行构建。

项目配置时选择gerrit event。

选择触发条件,即patch提交后的状态。

Role-based Authorization Strategy

该插件可实现对用户权限的控制,不同用户可以看到不同的项目。

  • root 用户视图:

  • 普通用户视图:

具体配置如下:

  • 在系统管理-Configure Global Security-授权策略-Role-Based Strategy,勾选Role-Based Strategy保存。

  • 在系统管理下,就可以看到Manage and Assign Roles。

  • 管理角色

  • Global roles-Role to add-添加一个kf,只勾选一个Overall-Read。

  • Project roles-Role to add-添加一个Team-kf,Pattern填写kf.*(这里kf.*表示以kf开头的项目)

  • 分配角色

  • Global roles-User/group to add-添加一个已存在的用户,并勾选上kf

  • Item roles-User/group to add-继续添加一次用户,并勾选上Team-kf,授予kf开头的项目权限

  • 创建项目,当whsir用户登录时候,只能看到kf-123的项目,并且无法进行系统设置

项目创建

登录管理员账户,点击新建任务,输入项目名称,选择构建一个自由风格的软件项目

手动构建项目

选择参数化构建过程Name变量名称,后面选项会用到该 变量,Description时对该变量的描述,根据实际情况填写描述即可,Parameter Type选择Branch or Tag

源码管理选择git,仓库填写gerrit的链接(此处需要提前在gerrit上建立对应的账号并添加ssh-key),Branches to build 填写上面参数化构建过程中填写的变量名。

构建选择执行脚本,添加该项目编译脚本即可。

自动构建dailybuild

由于自动构建时无法选择分支,所有这里采用每个分支创建一个项目的做法。
项目配置时,直接在构建中选择执行shell,然后添加构建计划即可。

构建触发器选择定时构建,填写构建时间。

构建脚本如下:

该脚本分为3个部分,其中2无需修改,新建项目时直接使用即可。

  • 1中主要是指定变量名,即分支名和项目名
  • 2中对代码快照进行判断,如果没有新的提交则不进行构建
  • 3中是具体项目的构建命令。


-为实现权限控制,dailybuild项目普通用户无需修改,所有dailybuild项目名称以db-开头,手动编译项目名称以manual-开头。

您的支持将鼓励我继续创作!