当前位置: 首页 > 工具软件 > Jenkins CLI > 使用案例 >

jenkins-cli使用

施冠玉
2023-12-01

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 中的可用参数, 分为几个主要类型

  • 任务管理
  • 任务构建
  • Jenkins 管理

任务管理

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# : 构建号

管理 Jenkins

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,每次都会更改
 类似资料: