Jenkins常用插件汇总以及简单介绍
# 前言。
刚刚发完那个刁钻需求的文章,发现已经到了二十九篇了,而本篇的插件汇总也是我已经写了很久的文章,当然,不是写了很长很久,准确说,应该是积累了很久的一篇文章,里边包含了很多日常工作当中能够一下子解决你的痛痒的插件,可谓是,不犀利不推荐。
现在进入正题。
# 1,Rebuilder。
- 官方地址:https://plugins.jenkins.io/rebuild
- 安装方式:在 Jenkins 插件当中直接搜索即可安装。
- 功能说明:此插件可以直接重复上次构建,也可以用于查看一些参数比较复杂的构建时,上次构建所选的参数是什么。非常 nice 的一个插件。
# 2,AnsiColor。
- 官方地址:https://plugins.jenkins.io/ansicolor
- 安装方式:在 Jenkins 插件当中直接搜索即可安装。
- 功能说明:扩展支持我们在 shell 当中定义的 echo -e 指令,从而给一定的输出上颜色。
- 使用方式:点此跳转到使用介绍。 (opens new window)
# 3,Maven Release Plug-in。
maven 风格插件。
- 安装方式:在 Jenkins 插件当中直接搜索即可安装。
# 4,user build vars。
- 官方地址:https://wiki.jenkins.io/display/JENKINS/Build+User+Vars+Plugin
- 安装方式:在 Jenkins 插件当中直接搜索即可安装。
- 功能说明:通过此插件,让整个 Jenkins 系统中的用户参数成为一个可调用的变量。
- 使用方式:在构建环境中选中 Set Jenkins user build variables。
选中之后,即可在当次构建的全程里调用对应的变量了。
变量分为如下几种:
Full name
:全名BUILD_USER_FIRST_NAME
:名字BUILD_USER_LAST_NAME
:姓BUILD_USER_ID
:Jenkins 用户 IDBUILD_USER_EMAIL
:用户邮箱
# 5,Active Choices Plugin
- 官方地址:https://wiki.jenkins.io/display/JENKINS/Active+Choices+Plugin
- 安装方式:在 Jenkins 插件当中直接搜索即可安装。
- 功能说明:根据所选参数,自动调出对应参数所依赖的后续参数。
- 使用方式:点此跳转到使用介绍。 (opens new window)
# 6,build-name-setter
- 官方地址:http://wiki.jenkins.io/display/JENKINS/Build+Name+Setter+Plugin
- 安装方式:在 Jenkins 插件当中直接搜索即可安装。
- 功能说明:通过这个插件,可以动态更改项目构建的名称。不要小瞧这个功能,有时候合理应用对于工作的效率提升,可是非常高的。比如,常用的钉钉插件推送的信息过于简单,有一些信息无法从中得知,其实它推送的就是项目构建的名称,这个时候我们可以通过更改项目名称,来直接将一些构建的变量进行传递。
- 使用方式:可以通过这样一个妙用示例对其进行理解。 (opens new window)
# 7,Email Extension Template
- 官方地址:https://wiki.jenkins.io/display/JENKINS/Email-ext+plugin
- 安装方式:在 Jenkins 插件当中直接搜索即可安装。
- 功能说明:Jenkins 部署状态邮件通知插件。
- 使用方式:可以通过这样一个妙用示例对其进行理解。 (opens new window)
# 8,description setter
- 官方地址:https://wiki.jenkins.io/display/JENKINS/Description+Setter+Plugin
- 安装方式:在 Jenkins 插件当中直接搜索即可安装。
- 功能说明:可以在构建名称下,定义一些描述信息的插件,也是非常好用的插件。
- 使用方式:可以通过这样一个妙用示例对其进行理解。 (opens new window)
# 9,Git Parameter
- 官方地址:http://wiki.jenkins-ci.org/display/JENKINS/Git+Parameter+Plugin
- 安装方式:在 Jenkins 插件当中直接搜索即可安装。
- 功能说明:在参数化构建步骤当中,可添加 Git 的 branch 或者 tag 来作为参数进行构建。
- 使用方式:可以通过这样一个妙用示例对其进行理解。 (opens new window)
# 10,Role-Based Strategy
- 官方地址:https://wiki.jenkins.io/display/JENKINS/Role+Strategy+Plugin
- 安装方式:在 Jenkins 插件当中直接搜索即可安装。
- 功能说明:生产当中常用的 Jenkins 用户视图权限管理插件。
- 使用方式:可以通过这样一个妙用示例对其进行理解。 (opens new window)
# 11,Job Configuration History Plugin
官方地址:https://wiki.jenkins.io/display/JENKINS/JobConfigHistory+Plugin
安装方式:在 Jenkins 插件当中直接搜索即可安装。
功能说明:jenkins 配置当中的后悔药,如果你更改了某个配置,但是现在又想更改回去,没有备份而且忘了,那么可以使用这个插件。
使用方式:提供有 diff 对比功能,以及回滚功能。
非常友好的配置更改历史记录: 查看不同,以及配置回滚这里就不演示了。
# 12,Simple Theme
- 官方地址:http://afonsof.com/jenkins-material-theme/?tdsourcetag=s_pctim_aiomsg
- 安装方式:在 Jenkins 插件当中直接搜索即可安装。
- 功能说明:可以自定义 Jenkins 主题的插件。
- 使用方式:使用方式见官方网站的说明,配置起来非常简单。
# 13,Build Trigger Badge
- 官方地址:https://wiki.jenkins-ci.org/display/JENKINS/Build+Trigger+Badge+Plugin
- 安装方式:在 Jenkins 插件当中直接搜索即可安装。
- 功能说明:能够在项目视图首页展示项目构建人的插件。
- 使用方式:事实上这个功能之前我已经在可以通过这样一个妙用示例对其进行理解这篇文章里通过智慧使用其他方式实现了,只不过现在这个插件可以直接实现对应的功能。如果首页视图当中看不到,可以通过编辑视图,添加 cause 即可看到。
# 14,Console Column Plugin
- 官方地址:https://wiki.jenkins.io/display/JENKINS/Console+Column+Plugin
- 安装方式:在 Jenkins 插件当中直接搜索即可安装。
- 功能说明:能够在项目视图首页展示项目构建输出面板的地址。
- 使用方式:首页视图中,可以通过
编辑视图
,添加Last Console
即可看到。
# 15,Display Console Output Plugin
- 官方地址:https://plugins.jenkins.io/display-console-output
- 安装方式:在 Jenkins 插件当中直接搜索即可安装。
- 功能说明:点击项目构建之后,可以直接在当前窗口显示构建日志。
- 使用方式:安装之后默认启用,随便点击一个自由风格的项目构建即可看到效果。
# 16,Version Number
- 官方地址:https://plugins.jenkins.io/versionnumber/
- 安装方式:在 Jenkins 插件当中直接搜索即可安装。
- 功能说明:通过插件的方式提供更加丰富的构建版本号
- 使用方式:安装之后默认启用,随便点击一个自由风格的项目构建即可看到效果。
# 17,figlet-buildstep
官方地址:https://plugins.jenkins.io/figlet-buildstep/
安装方式:在 Jenkins 插件当中直接搜索即可安装。
功能说明:这个插件允许你在构建过程中输出一个简单的横幅。
使用方式:使用方法我们可以在流水线语法中直接获取:
figlet '"start build"'
1如上代码放到任意地方,会得到如下输出:
# 18,Hidden Parameter plugin
官方地址:https://plugins.jenkins.io/hidden-parameter (opens new window)
安装方式:在 Jenkins 插件当中直接搜索即可安装。
功能说明:提供了一个隐藏参数项的功能,即可以添加一个参数,而并不会在构建页面显示。这种适用于一些不必展示的参数,使用接口调用构建时,也能通过调整该参数进行自定义构建。
使用方式
如果是 freestyle 风格的,则直接在页面配置即可:
如果是 pipeline 风格,则可通过如下方式进行定义,如下定义方式,我搜遍了全网,没有遇到直接给出定义方法的案例,看到这里,独此一家:
//分支代码对应 def ChoiseEnv() { return [ [$class: 'WHideParameterDefinition', name: 'COMMID', defaultValue: '666',description:'提交ID'] ] } properties([ parameters(ChoiseEnv()) ]) pipeline { agent any environment { // 服务名称 SERVICE_NAME="${JOB_BASE_NAME}" MODE="DEPLOY" REASON="无" REMOTE_HOST="占位" _VERSION="测试验证" ROBOT_KEY="6a781aaf-0cda-41ab-9bd2-ed81ee7fc7" // 主项目地址 GIT_URL = "https://gitlab.eryajf.net/ops/test.git" } parameters { string(name: 'BRANCH', defaultValue: 'master', description: '请输入将要构建的代码分支') } options { timestamps() // 输出构建日志打印时间信息 timeout(time: 10, unit: 'MINUTES') // 设置构建超时时间 buildDiscarder(logRotator(numToKeepStr: '15')) // 设置历史构建保留次数 gitLabConnection('gitlab-token') // 操作gitlab的token } triggers{ gitlab(triggerOnPush: false,triggerOnMergeRequest: true,branchFilterType: 'All',secretToken: "${env.GIT_TOKEN}") // 预留Gitlab提交自动构建 } stages { stage('拉取代码') { steps { script { try { checkout( [$class: 'GitSCM', doGenerateSubmoduleConfigurations: false, submoduleCfg: [], extensions: [[$class: 'CloneOption', depth: 1, noTags: false, reference: '', shallow: true]], branches: [[name: "$BRANCH"]],userRemoteConfigs: [[url: "${env.GIT_URL}", credentialsId: "cicd-pass"]]] ) // 定义全局变量 env.COMMIT_ID = sh(script: 'git log --pretty=format:%h', returnStdout: true).trim() // 提交ID env.COMMIT_USER = sh(script: 'git log --pretty=format:%an', returnStdout: true).trim() // 提交者 env.COMMIT_TIME = sh(script: 'git log --pretty=format:%ai', returnStdout: true).trim() // 提交时间 env.COMMIT_INFO = sh(script: 'git log --pretty=format:%s', returnStdout: true).trim() // 提交信息 }catch(exc) { env.REASON = "拉取代码出错" throw(exc) } } } } stage('检测项目') { steps { script { try { sh ''' cat README.md echo ${COMMID} ''' sh "printenv" }catch(exc) { env.REASON = "检测项目出错" throw(exc) } } } } } post { always { script{ wrap([$class: 'BuildUser']){ buildName "#${BUILD_ID}-${BRANCH}-${BUILD_USER}" // 更改构建名称 currentBuild.description = "提交者: ${COMMIT_USER}" // 添加说明信息 currentBuild.description += "\n构建主机: ${REMOTE_HOST}" // 添加说明信息 currentBuild.description += "\n提交ID: ${COMMIT_ID}" // 添加说明信息 currentBuild.description += "\n提交时间: ${COMMIT_TIME}" // 添加说明信息 currentBuild.description += "\n提交内容: ${COMMIT_INFO}" // 添加说明信息 } sh "printenv" } cleanWs() } } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# 19,Config File Provider
- 官方地址:https://plugins.jenkins.io/config-file-provider
- 安装方式:在 Jenkins 插件当中直接搜索即可安装。
- 功能说明:提供全局配置管理的一种优雅方式,通常在 pipeline 中的一些认证会用到这个配置。
- 使用方式:添加一些诸如 k8s 认证文件 config 配置的功能。
# 20,extended-choice-parameter
- 官方地址:https://plugins.jenkins.io/extended-choice-parameter
- 安装方式:在 Jenkins 插件当中直接搜索即可安装。
- 功能说明:提供了一种灵活地参数化能力。回滚使用的这个插件。
- 使用方式:实现回滚版本选项列表的插件。
# 21,Docker Pipeline
- 官方地址:https://plugins.jenkins.io/docker-workflow
- 安装方式:在 Jenkins 插件当中直接搜索即可安装。
- 功能说明:提供了 pipeline 中 docker 环境隔离的能力。
- 使用方式:使用方式参考这里 (opens new window)。
# 22,MySQL Database
- 官方地址:https://plugins.jenkins.io/database-mysql/
- 安装方式:在 Jenkins 插件当中直接搜索即可安装。
- 功能说明:提供了 pipeline 中调用 MySQL 进行增删改查的能力。
- 使用方式:使用方式参考这里 (opens new window)。