美文网首页CI/CD
Jenkins-cli 自动化构建工具(1)

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

作者: Transnet2014 | 来源:发表于2017-05-04 19:17 被阅读245次

    帮助文档

    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,每次都会更改
    

    相关文章

      网友评论

      • Transnet2014:格式化文档并输出真不是人干的活,回头真的弄个自动排版工具。

      本文标题:Jenkins-cli 自动化构建工具(1)

      本文链接:https://www.haomeiwen.com/subject/teydtxtx.html