简介
领先的开源自动化服务,基于 Java 构建,提供上千种插件来支持自动化绝大多数工作,解放人力
- GitHub 项目主页
- 官网
- 类似工具: GitHub 集成工具列表
使用场景
- 自动构建
- 自动化测试并生成报告
- 代码统计、分析
- 自动部署
- 持续集成
- 持续交付(2.0版本开始)
- ......
支持
- Java
- Android
- C/C++
- iOS
- .NET
- Scala
- 嵌入式
- Python
- Ruby
- GitHub
- Docker
安装配置
- 要求使用
Java 7
, 推荐使用Java 8
- 示例版本
2.7.1
CentOS
安装
sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo
sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
sudo yum install jenkins
其他系统请参考官网
启动
sudo service jenkins [start/stop/restart]
sudo chkconfig jenkins on #自动启动
配置文件
sudo vim /etc/init.d/jenkins
自定义 Java 路径配置:
$candidates
主目录:/var/lib/jenkins
workspace目录:/var/lib/jenkins/workspace
Windows
直接下载运行 java -jar jenkins. war
主目录:
C:\Users\user\.jenkins
workspace目录:C:\Users\user\.jenkins\workspace
使用
简单介绍基础的使用场景,更多详细内容参考官网文档
- 访问 localhost:8080,开始使用(端口可配置,默认 8080)
-
首次访问系统会要求填入安装过程中产生的初始管理密码,根据提示找到对应文件填入密码即可
-
插件配置。根据需要安装推荐的插件或自定义需要安装的插件
选择推荐的安装,等待安装完成,可以看到安装列表中包含了常用的工具,方便快捷
-
安装结束后,自动跳转到新增管理用户界面,当然也可跳过该过程,直接使用初始管理员身份继续,此处创建新用户便于管理
系统管理
菜单中包含全局配置、安全认证、插件管理、日志、用户管理等配置-
服务化配置。在Windows下,如果需要将 Jenkins 作为系统服务管理,可配置 Jenkins 作为系统服务启动使用
-
运行环境、构建工具配置。在
系统管理 > Global Tool Configuration
中设置 JDK / Git / Gradle / Ant / Maven,根据需要配置对应版本
-
邮件通知。如果需要在构建成功或失败时通知用户,需要先配置邮件发送账户。在
系统配置
中,配置邮件通知,然后在对应的项目/项目中配置发送的目的账号即可。
创建项目
类型
点击首页的新建项目,项目类型包括 6 种,通常自由风格可满足简单项目需求:
- Pipeline,提供 Pipeline 脚本,用来配置构建的工作流,可分阶段构建复杂的项目(通常自由风格项目无法处理时使用)
- Folder,项目管理目录,便于区分管理
- Multibranch Pipeline,多分支 Pipeline 项目
详细配置
各个配置项后,都包含使用说明,点击帮助图标,参考示例进行配置
- 基础配置,包括名称、描述、构建频率、构建策略、工作空间、日志等
- 源码管理,可配置 Git / Subversion 或不配置
- 构建触发器,可配置触发动作(远程、顺序、周期性、代码更新等)
- 构建环境,配置构建时的环境
- 构建
可根据需要使用 shell/bat 脚本,或构建脚本(ant, gradle, maven);
另外还可安装其他插件,添加更多自定义动作
- 构建后操作
同构建中的选项,此处可选择需要的动作,包括归档、调用其他构建、生成单元测试报告、邮件通知等;也可根据需求添加更多插件;
触发/启动项目
有两种手动触发的方式:
-
在主页/目录主页(如果创建了 Folder),可以看到项目列表,包括各项目的上次状态、晴雨表(按成功失败比例生成)、名称、上次时间等,最后一列的按钮即为立即触发构建;
-
在项目的详情页左侧,也包含一个立即构建的链接
禁用项目
当一个项目不再使用或需要暂停使用(如异常排查等)时,可选择将项目禁用,这样项目中配置的定时构建任务会停止,同时也无法通过手动触发构建(按钮、菜单消失)
-
在项目配置页勾选关闭构建
-
在项目详情页右侧禁用项目
推荐插件
- Publish Over SSH
Publish Over 系列插件之一,方便使用其他用户执行远程命令、脚本;上传文件等。方便部署已打包的应用(使用 tomcat 远程部署功能时,会出现内存溢出等问题;使用 SSH 替代,部署更稳定)。