幫助文檔
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,每次都會更改