实践Jenkins

Jenkins

安装和配置Jenkins

安装Jenkins

操作系统:CentOS 7.6 64位

Jenkins:2.176.1

1
2
3
4
5
6
7
8
9
10
11
12
13
# 安装java
$ sudo yum install java
# 安装jenkins
$ sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
$ sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
$ sudo yum install jenkins

$ sudo chkconfig jenkins on

# 启动jenkins
$ sudo service jenkins start
# 或者
$ sudo systemctl start jenkins

默认会新建jenkins用户,此用户只是jenkins的运行用户,不能登陆。

默认jenkins工作目录在/var/lib/jenkins

安装工具

安装JDK

安装Maven

默认.m2目录在jenkins工作目录下

备注:Windows 7系统下.m2目录在C:\Windows\System32\config\systemprofile(jar类)和C:\Windows\SysWOW64\config\systemprofile(pom类)

安装Git

1
$ sudo yum -y install git

安装Node.js

采用自动安装的方式,输入名称,勾选自动安装,选择版本保存即可。

默认自动安装到jenkins工作目录下的tools目录。

升级Jenkins

1
$ sudo yum update jenkins

最佳实践

从远程仓库获取的项目源码存放在jenkins工作目录下面的workspace/{projectname}/

每次构件后jenkins会把构建结果归档到jenkins工作目录下的jobs/{projectname}/modules/{groupId}${artifactId}/builds/{buildtimes}/archive/

构件副本

通过Discard old builds可以控制构建副本保持天数和数量。

参数化

默认支持的参数包括:

Boolean Parameter

Choice Parameter

File Parameter

Multi-line String Parameter

Password Parameter

Run Parameter

String Parameter

Credencials Parameter

可以通过安装插件支持更多的参数,比如Git Parameter plug-in

配置smtp

email notification

1
No mail will be sent out, as 'readingList #6' does not have a result yet. Please make sure you set a proper result in case of pipeline/build scripts.

权限

Administer Read Create Delete ManageDomains Update View Build Configure Connect Create Delete Disconnect Build Cancel Configure Create Delete Discover Move Read Workspace Delete Replay Update Configure Create Delete Read Tag Reserve Unlock
Overall/Administrator,管理员 Overall/Read,首页权限                       Job/Build             Job/Read                      

plugin

Maven Integration plugin

NodeJS

Publish Over SSH

系统配置

备注:配置好ssh免密登陆。

publish-over-ssh

任务配置

over-ssh

Source files:待传输文件,支持Ant匹配模式。例如:dist/*.*代表dist目录下的文件,dist/**/*.*代表dist目录及其子目录下的文件

Remove prefix:设定Source files的部分目录结构不用在远程服务器创建

Flatten files:Source files的目录结构不在远程服务器创建

Exec command:执行的shell命令,后一行的命令不依赖前一行命令的执行结果,如果需要,可以使用&&

Persistent Parameter Plugin

Persistent Boolean Parameter

Persistent Choice Parameter

Persistent String Parameter

Persistent Text Parameter

Git Parameter Plug-In

git parameter

git parameter

Matrix Authorization Strategy

权限控制

按人或组设定权限

项目粒度按人或组设定权限

Authorize Project

Build With Parameters

参数化部署

勾选上This project is parameterized

parameterized publishing

parameterized publishing

parameterized publishing

参考资料

《Jenkins 2.x实践指南》,翟志军