嗨,2016就要结束啦,真的要结束啦,不骗你!
是不是年初的感觉还恍如昨日?
时间大步流星地向前,CI初体验不可以跨年。今天我们一起来创建一个Build,体验一下Jenkins CI的魅力。
在上一期中,我们已经Setup了Jenkins CI,并成功启动了Jenkins服务,此时我们看到的只是一个非常基础的Jenkins,为了满足项目的需求,我们要对其做一些配置。比如邮件通知、用户权限配置,以及执行一些任务所用到的工具(Gradle、Git、JDK等)。本期,我们来学习一下如何进行Jenkins CI的基本配置,如何build一个Project。
Jenkins CI的基本配置:
1.配置系统环境:
* Shell executable
* System Admin e-mail address
* E-mail notification
2.安装系统工具:
* JDK:提供Java执行环境
* Gradle: 执行编译、测试、打包等任务
* Git: pull代码等
3.安装常用Plugins:
* Simple Theme Plugin:e.g.Materia主题,Neo主题
* Environment Injector Plugin:用于给build注入环境变量
* Copy Artefact Plugin:用于在build中复制其他build生成的artifact
* JaCoCo plugin:展示JaCoCo生成的测试覆盖率报告。
* Build Pipeline plugin:将上下游Build连起来组成一个Pipeline,提供自定义触发功能。
* Join plugin: 用于管理并行build,保证并行的builds完成后才触发下游的build
* Promoted Builds plugin: 用于设置对后置build触发条件
* Build flow test aggregator:用于将build flow的所有build的结果聚合展示出来
* Dependency Graph Viewer Plugin:用于可视化Builds之间的依赖关系, Jenkins Server需要安装graphviz
4.配置用户权限:
Jenkins提供了用户权限控制。通常Jenkins上会包含一些敏感的信息和复杂的配置,以及手动一键部署的步骤,所以我们只允许拥有特定权限的用户才可以对Build执行相关操作,比如说匿名用户只有可读权限。
Build你的第一个Project:
为了便于体验,已经为大家准备好了现成的环境及Project,你可以直接从我的Github上克隆:
1.已经配置好工具的CI环境:https://github.com/JulyShi/dojo-ci.git
2.第一Build的project:https://github.com/JulyShi/dojo-ci-web.git
Step 1:Clone CI workshop
在本地建一个文件目录,用于clone workshop. 进入目录,开始克隆。
命令行:
$ mkdir ci-workshop
$ cd ci-workshop
$ git clone https://github.com/JulyShi/dojo-ci.git
Step 2: Vagrant up and connect
(1).Up Vagrant
克隆完毕,上次已经安装过Vagrant了,这次不需要重新安装,直接启动即可(如需了解安装步骤,请查看上期内容)。
命令行:
$ vagrant up
启动完成之后,你就有一个Ubuntu虚拟机在运行啦。接下来登录你的虚拟机。
(2).Connects to machine via SSH
命令行:
$ vagrant ssh
Step 3:Up Jenkins
至此,CI服务器已经启动了,上期我们已经安装过Jenkins了,本次就可以直接启动啦(如需了解安装步骤,请查看上期内容)。
首先check一下Jenkins的状态:
命令行:$ sudo service jenkins status
发现Jenkins未启动,接着手动启动:
命令行:$ sudo service jenkins start
Step 4: Sign up and Login Jenkins
该步骤已在上期内容中进行了详细叙述,本期不再赘述。
(1). 在chrome访问:localhost:8080
(2). 输入密码:
这个密码运行的Server上,也就是之前使用Vagrant启动的Ubuntu的虚拟机上.
先在命令行获取密码:$ sudo cat /var/lib/jenkins/secrets/initialAdminPassword
然后chrome界面输入密码登录。
(3). 选择安装合适的plugin
(4). 等待安装
(5). 创建admin
(6). 登录jenkins
Step 5:System Configuration
我们开始配置Jenkins CI的系统环境。导航:Home->Manage Jenkins -> Configure System
(1).Shell Shell executable
这里个人偏好选择bash, 也可根据自己在Terminal中的操作习惯选择其他方式,比如sh。
(2).E-mail notification
E-mail是一个很好的反馈通知机制,一旦build任何阶段失败,将第一时间邮件通知相关人员,这也是CI反馈机制中的关键步骤,那么要启用邮件通知,需要我们配置全局的E-mail notification:
* 这里使用的邮箱必须开启SMTP服务,如何开启,请询问度娘。
配置完成后,需要测试一下邮件是否能够发送成功,选中Test configuration by sending test e-mail,填上有效的邮箱地址,点击Test configuration即可,通常情况下,你会看到一些红色的异常信息,原因是,我们还需要配置System Admin e-mail address.
(3).System Admin e-mail address.
此项配置是为了保证E-mail通知的正常运行,因为Jenkins只允许系统管理员执行Email通知,所以只有系统管理员邮箱地址和发邮件的地址是相同时,才能成功发送邮件通知。
Step 6. Install System Tools
接下来我们安装一些系统工具。导航:Home->Manager jenkins -> Global Tool configuration
通常我们不会在Jenkins Web GUI上安装工具,而是将安装命令配置在shell脚本中。在vagrant up的时候自动安装。(如果此次体验,你采用我提供的workshop(https://github.com/JulyShi/dojo-ci.git),那么这一步就忽略吧,工具已经在脚本中配置好了。如果采用上期搭建的环境,就按照下图手动配置一下吧。有关脚本配置,请查看文件:setup-env.sh)
Step 7. Install Plugins
Jenkins之所以强大并不是Jenkins自身有多么的强大,而是因为它的易用且开源,深受社区开发者的青睐,各种实用插件因此应运而生,让Jenkins的功能变得越来越强大。因此插件是Jenkins中不可忽视的核心部分。
导航:Home->Manage Jenkins -> Manage Plugins
在Filter依次输入要安装的Plugin,选中前面的checkBox,先不急于安装,等选中全部需要安装的plugins,再点击’Install without restart’ button来一次安装。本次我们安装以下plugins:
·Simple Theme Plugin
·Environment Injector Plugin
·Copy Artefact Plugin
·JaCoCo plugin
·Build Pipeline plugin
Step 8. Create new job (project)
到此为止呢,基础的Jenkins已经配置就绪,我们来创建一个Build project来感受一下。后面所有工作均可以在Web GUI上完成。
(1).Create a new project
输入Project名称,选择自由风格project类型。
(2).导入Source Code
此处我们选择git
在URL中输入dojo-co-web project的Github代码库,并添加你自己的Github账号
(3).配置SCM
在Build Triggers栏配置触发构建策略
(4).配置build step
build: ./gradlew clean test build
(5). 配置test report & Email Notification
test report: build/test-results/*.xml
Email Notification: 配置收件人地址
(6).Save 你的配置
Step 9. Build your job (project)
开始build你的job吧。
build完毕之后,那你就会看到build结果啦。