Jenkins-cli 自动化构建工具(1)

帮助文档

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
通过输入来创建任务、节点、视图
NAME : 任务名称、节点名称、视图名称

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,每次都会更改
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,233评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,013评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,030评论 0 241
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,827评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,221评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,542评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,814评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,513评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,225评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,497评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,998评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,342评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,986评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,812评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,560评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,461评论 2 266

推荐阅读更多精彩内容

  • Jenkins Build Status 这是一个 Node Jenkins 客户端. API 接口文档列表 je...
    Transnet2014阅读 1,973评论 0 6
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,658评论 0 33
  • 遇到一个姑娘, 常把陪伴和爱绑定的姑娘。 常把你放在心上, 看不到模样的姑娘。 有一天她不在说起陪伴, 说起了老去...
    潮落晨曦阅读 159评论 0 0
  • 当朋友处于痛苦心境时,我们经常看到,很多人要么好言相劝“别伤心,坚强点儿,想开点就没事了”。要么帮助“分析问题,”...
    森森_森森阅读 414评论 0 2
  • 嗨 我觉得我处在一片苍白中 这其中,甚至连一种迷惘的感觉都没有 我想,这大概应该用麻木来形容吧 但在遇见他之前,我...
    Yo1o阅读 331评论 0 0