Jenkins详细教程

Version:1.0 Starthtml:000000201 EndHTML:000043456 StartFragment:000008971 EndFragment:000043418 StartSelection:000008971 EndSelection:000043418 SourceURL:https://www.jianshu.com/p/5f671aca2b5a
一、jenkins是什么?Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释) 。Jenkins用JAVA语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行 。通常与版本管理工具(SCM)、构建工具结合使用 。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle 。
二、CI/CD是什么?CI(Continuous integration,中文意思是持续集成)是一种软件开发时间 。持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试 。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起 。借用网络图片对CI加以理解 。

Jenkins详细教程

文章插图
CI
CD(Continuous Delivery,中文意思持续交付)是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生产环境)中 。比如,我们完成单元测试后,可以把代码部署到连接数据库的Staging环境中更多的测试 。如果代码没有问题,可以继续手动部署到生产环境 。下图反应的是CI/CD 的大概工作模式 。
Jenkins详细教程

文章插图
CI/CD
三、使用Jenkins进行php代码(单元)测试、打包 。Jenkins是一个强大的CI工具,虽然本身使用Java开发,但也能用来做其他语言开发的项目CI 。下面讲解如何使用Jenkins创建一个构建任务 。
登录Jenkins,点击左侧的新建,创建新的构建任务 。
Jenkins详细教程

文章插图
 
跳转到如下界面 。任务名称可以自行设定,但需要全局唯一 。输入名称后选择构建一个自由风格的软件项目(其他选项不作介绍) 。并点击下方的确定按钮即创建了一个构建任务 。之后会自动跳转到该job的配置页面 。
Jenkins详细教程

文章插图
新建自由风格的软件项目
下图是构建任务设置界面,可以看到上方的几个选项"General", "源码管理","构建触发器","构建环境","构建","构建后操作" 。下面逐一介绍 。
 
Jenkins详细教程

文章插图
 
1.GeneralGeneral是构建任务的一些基本配置 。名称,描述之类的 。
Jenkins详细教程

文章插图
General
项目名称: 是刚才创建构建任务步骤设置的,当然在这里也可以更改 。
描述: 对构建任务的描述 。
丢弃旧的构建: 服务器资源是有限的,有时候保存了太多的历史构建,会导致Jenkins速度变慢,并且服务器硬盘资源也会被占满 。当然下方的"保持构建天数" 和 保持构建的最大个数是可以自定义的,需要根据实际情况确定一个合理的值 。
其他几个选项在这里不做介绍,有兴趣的可以查看Jenkins"帮助信息",会有一个大概的介绍 。不过这些"帮助信息"都是英文的 。
Jenkins详细教程

文章插图
点击右方的这些"问号"查看"帮助信息"
2.源码管理源码管理就是配置你代码的存放位置 。
Jenkins详细教程

文章插图
源码管理
Git: 支持主流的github 和gitlab代码仓库 。因我们的研发团队使用的是gitlab,所以下面我只会对该项进行介绍 。
Repository URL:仓库地址
Credentials:凭证 。可以使用HTTP方式的用户名密码,也可以是RSA文件 。但要通过后面的"ADD"按钮添加凭证 。
Branches to build:构建的分支 。*/master表示master分支,也可以设置为其他分支 。
源码浏览器:你所使用的代码仓库管理工具,如github, gitlab.
URL:填入上方的仓库地址即可 。
Version: 8.7 这个是我们gitlab服务器的版本 。
Subversion:就是SVN,这里不作介绍 。
3.构建触发器构建触发器,顾名思义,就是构建任务的触发器 。
Jenkins详细教程

文章插图
 
触发远程构建(例如,使用脚本): 该选项会提供一个接口,可以用来在代码层面触发构建 。这里不做介绍,后期可能会用到 。


推荐阅读