https://www.jianshu.com/p/45f010d63ff3
Jenkins 是持续集成工具,然而在使用时并不友好,构建项目的时候自动化也比较差劲,于是找到 cli 工具,以期通过 cli 工具将其集成到 nodejs 脚本工具中,简化过程。
Jenkins 中有三种组织任务的方式,node/view/job 依次为服务器节点、自定义分类视图以及任务本身
java -jar jenkins-cli.jar [-s URL] command [opts...] args...
选项:
-s URL : 服务器地址 (可以配置系统变量 JENKINS_URL 来设置默认值)
-i KEY : 用于授权的 SSH 私钥文件
-p HOST:PORT : HTTP 请求的代理主机和接口 如果想要使用 HTTPS [查看这里](http://jenkins-ci.org/https-proxy-tunnel)
-noCertificateCheck : 忽略 HTTPS 认证检查,如果有安全隐患,请慎重使用。
-noKeyAuth : 不使用私钥验证,与-i 是冲突的。
更多选项可以使用 help 调出。
下文就给出了 help 在 ikang-Jenkins-server 中的可用参数, 分为几个主要类型
copy-job
java -jar jenkins-cli.jar copy-job SRC DST
克隆一个任务
SRC : 源任务
DST : 新任务
add-job-to-view
/ remove-job-from-view
java -jar jenkins-cli.jar add-job-to-view VIEW JOB ...
将 job 添加到 view
VIEW : view 的名字
JOB : job 名字
java -jar jenkins-cli.jar remove-job-from-view VIEW JOB ...
从视图中删除任务
VIEW : 视图名称
JOB : 任务名称
create-job
/create-node
/ create-view
java -jar jenkins-cli.jar create-job [create-node | create-view ] NAME < job/node/view.xml
通过输入来创建任务、节点、视图
NAME : 任务名称、节点名称、视图名称
获取job/node/view.xml可先
java -jar jenkins-cli.jar -i /home/rduser/.ssh/id_rsa -s http://10.30.30.1:18080/jenkins get-job job_name>job.xml
java -jar jenkins-cli.jar -i /home/rduser/.ssh/id_rsa -s http://10.30.30.1:18080/jenkins get-view view_name>view.xml
delete-job
/ delete-node
/ delete-view
java -jar jenkins-cli.jar delete-job VAL ...
删除指定的任务、节点、视图
VAL :任务名称、节点名称、视图名称
disable-job
/ enable-job
/ reload-job
将一个任务置为不可用 / 恢复一个任务为可用状态 / 重新加载任务
get-job
/ get-node
/ get-view
java -jar jenkins-cli.jar get-job JOB
将任务、节点、视图配置吐出到 xml 文件,可以使用重定向输出到文件中
JOB : 任务名称、节点名称、视图名称
update-job
/ update-node
/ update-view
通过 xml 文件修改 任务、节点、视图的配置, 是 get 的逆操作
list-changes
java -jar jenkins-cli.jar list-changes JOB RANGE [-format [XML | CSV | PLAIN]]
输出指定构建的变更日志(SCM 同步过来的)
JOB :任务名称
RANGE :任务编号
-format [XML | CSV | PLAIN] : 指定输出类型
list-jobs
java -jar jenkins-cli.jar list-jobs [NAME]
列出视图中的任务
NAME : 视图名称
build
java -jar jenkins-cli.jar build JOB [-c] [-f] [-p] [-r N] [-s] [-v] [-w]
构建一个 job,可选择等待其完成再输出, 除了普通的任务触发,还可以在任务中触发其他任务,
使用 -s 参数可以根据编译结果返回不同的状态码,0 标识编译成功,中断这个指令将会中断 job 的执行!
使用 -f 跟 -s 一样,也能得到状态码,但这个不会受到指令的影响,一旦开始执行就会执行到结束
使用 -c 会检查代码是否有变更(版本变更)没变更不执行("SCM" is "software configuration management", i.e. your version control system)
JOB : 需要构建的 job 名字
-c : 检查代码是否有变更(版本变更)没变更不执行
-p : 以 key=value 形式,添加构建参数.
-s : 参数可以根据编译结果返回不同的状态码,0 标识编译成功,中断这个指令将会中断 job 的执行!
-f : 跟 -s 一样,也能得到状态码,但这个不会受到指令的影响,一旦开始执行就会执行到结束
-v : 打印出构建过程中的输出,与 -s 配合使用
-w : 等待输入开始
console
java -jar jenkins-cli.jar console JOB [BUILD] [-f] [-n N]
将任务构建日志输出,类似执行 `cat build.log`
JOB : 任务名称
BUILD : 构建号或者目标构建所在的链接地址,默认为最后一次构建
-f : 如果构建正在进行,则逐条输出,类似于 tail -f ,一般都会带着一起使用
-n N : 输出指定的最后几行
set-build-description
/ set-build-display-name
设置构建描述 / 设置构建名
set-build-parameter
java -jar jenkins-cli.jar set-build-parameter NAME VALUE
配置构建参数
NAME : 参数名
VALUE : 参数值
delete-builds
java -jar jenkins-cli.jar delete-builds JOB RANGE
删除指定任务的构建记录
JOB : 任务名称
RANGE : 删除的范围. 'N-M', 'N,M', 或者 'N',这里是构建号
set-build-result
设置构建的输出内容,只有在构建过程中才能生效
set-external-build-result
java -jar jenkins-cli.jar set-external-build-result [--display (-n) DISPLAY] [--dump-build-number (-b)] [--duration (-d) DURATION] --job (-j) JOB --log (-l) -|LOG [--result (-r) RESULT]
设置外部监听器
--display (-n) DISPLAY : 任务构建的名字
--dump-build-number (-b) : 输出构建编号
--duration (-d) DURATION : 输出构建时间(毫秒)
--job (-j) JOB : 外部监听器的名称
--log (-l) -|LOG : 日志
--result (-r) RESULT : 构建结果 0: 成功, 1: 失败
keep-build
java -jar jenkins-cli.jar keep-build NAME BUILD#
让一个任务始终处于构建状态
NAME : 任务名称
BUILD# : 构建号
login
/ logout
java -jar jenkins-cli.jar login
保存当前的认证信息到 session 中,后续请求不再鉴权
退出
shutdown
/ restart
Jenkins 关机、 重启 Jenkins
safe-restart
/ safe-shutdown
安全重启 Jenkins,会等待队列中所有任务执行完成后自动重启
安全关机 Jenkins,会将系统设置为等死模式,然后等待所有任务执行完成后自动关机
wait-node-offline
/ wait-node-online
等待某个节点下线、上线,没指定就是主节点 master
clear-queue
清空构建队列,主要用于重启和关机
quiet-down
/ cancel-quiet-down
java -jar jenkins-cli.jar quiet-down [-block] [-timeout N]
进入等死阶段,为重启做准备。
-block : 开启此命令以后,不再触发任何任务
-timeout N : 定时关机,单位毫秒
取消 `quite-down` 命令的效果,不再等死
connect-node
/ disconnect-node
java -jar jenkins-cli.jar connect-node NAME [-f]
重连到某个节点
NAME : 节点名字,默认为主节点 master
-f : 强制清空所有阻塞的链接请求,重新连接
从节点断开连接
install-plugin
java -jar jenkins-cli.jar install-plugin SOURCE ... [-deploy] [-name VAL] [-restart]
从文件、URL 或者更新中心安装插件
SOURCE : 指定从文件、URL 还是更新中心中安装,URL 的话会使用短命名的方式
-deploy : 直接部署,无需等待下次重启
-name VAL : 指定安装插件到系统的短命名,如果不指定将会自动获取
-restart : 安装成功后自动重启
install-tool
java -jar jenkins-cli.jar install-tool [KIND] [NAME]
显示工具的安装过程,并反馈安装结果
KIND : 工具类型
NAME : 工具名称
list-plugins
java -jar jenkins-cli.jar list-plugins [NAME]
列出 Jenkins 安装的全部插件,指定名称以后返回指定的插件
NAME :插件名字
offline-node
/ online-node
手工下线某个节点 / 手工恢复某个节点
reload-configuration
清空内存并重新从文件系统加载配置内容,当你修改配置文件的时候应该重置一下。
version
输出当前 Jenkins 版本
who-am-i
输出鉴权信息
mail
将输出发送邮件
groovy
执行指定的 groovy 命令
groovysh
以交互命令行的形式, 执行指定的 groovy 命令
session-id
输出 Jenkins 的会话 ID,每次都会更改