[TOC]
管理員控制Jenkins
重啟,關(guān)機(jī)遭笋,退出
登錄后,根路由輸入
http://localhost:8080/restart
http://localhost:8080/reload
http://localhost:8080/exit
定時(shí)任務(wù)
Build periodically
定時(shí)觸發(fā)構(gòu)建任務(wù)徒探,不管遠(yuǎn)程代碼分支上的代碼是否發(fā)生變化瓦呼,都執(zhí)行一次構(gòu)建
H 2 * * *
每天兩點(diǎn)定時(shí)執(zhí)行構(gòu)建
Build periodicallySchedule 參數(shù)說(shuō)明
# 參數(shù)格式
* * * * *
# 每天1點(diǎn)開(kāi)始依次構(gòu)建
H 1 * * *
# 每個(gè)小時(shí)的第 0 分鐘執(zhí)行一次構(gòu)建
0 * * * *
# 每周一到五,當(dāng)天3點(diǎn)開(kāi)始依次構(gòu)建
H 3 * * 1-5
- 第一個(gè)參數(shù)代表的是分鐘 minute测暗,取值 0~59央串;
- 第二個(gè)參數(shù)代表的是小時(shí) hour磨澡,取值 0~23;
- 第三個(gè)參數(shù)代表的是天 day质和,取值 1~31稳摄;
- 第四個(gè)參數(shù)代表的是月 month,取值 1~12饲宿;
- 最后一個(gè)參數(shù)代表的是星期 week厦酬,取值 0~7,0 和 7 都是表示星期天瘫想。
Poll SCM
定時(shí)感知代碼分支是否有變化仗阅,如果有變化的話,執(zhí)行一次構(gòu)建
H/10 * * * *
每十分鐘去檢查一下遠(yuǎn)程倉(cāng)庫(kù)殿托,看代碼是否發(fā)生變化
curl
官網(wǎng)的wiki:https://wiki.jenkins-ci.org/display/JENKINS/Remote+access+API
curl -X POST JENKINS_URL/job/JOB_NAME/build \
--user USER:TOKEN \
--data-urlencode json='{"parameter": [{"name":"id", "value":"123"}, {"name":"verbosity", "value":"high"}]}'
Python-Jenkins
幾乎涵蓋了大部分Jenkins的操作
Python-Jenkins官網(wǎng):https://pypi.python.org/pypi/python-jenkins/
Python-Jenkins Doc:http://python-jenkins.readthedocs.io/en/latest/index.html
install python-jenkins
pip install python-jenkins
Use Python-Jenkins
import jenkins
#定義遠(yuǎn)程的jenkins job
job_name='job'
#定義遠(yuǎn)程的jenkins master server的url霹菊,以及port
jenkins_server_url='xxxx:xxxx'
#定義用戶(hù)的User Id 和 API Token
user_id='xxxx'
api_token='xxxx'
#實(shí)例化jenkins對(duì)象,連接遠(yuǎn)程的jenkins master server
server=jenkins.Jenkins(jenkins_server_url, username=user_id, password=api_token)
#構(gòu)建job名為job_name的job(不帶構(gòu)建參數(shù))
server.build_job(job_name)
#String參數(shù)化構(gòu)建job名為job_name的job, 參數(shù)param_dict為字典形式支竹,如:param_dict= {"param1":“value1”旋廷, “param2”:“value2”}
server.build_job(job_name, parameters=param_dict)
#獲取job名為job_name的job的相關(guān)信息
server.get_job_info(job_name)
#獲取job名為job_name的job的最后次構(gòu)建號(hào)
server.get_job_info(job_name)['lastBuild']['number']
#獲取job名為job_name的job的某次構(gòu)建的執(zhí)行結(jié)果狀態(tài)
server.get_build_info(job_name,build_number)['result']
#判斷job名為job_name的job的某次構(gòu)建是否還在構(gòu)建中
server.get_build_info(job_name,build_number)['building']
配置任務(wù)流 Pipeline
引用: https://my.oschina.net/ghm7753/blog/371954?p=1
插件安裝 Build Pipeline Plugin
如果要手動(dòng)安裝需要下載如下
- Javadoc Plugin
- Maven Integration plugin
- Token Macro Plugin
- Ant Plugin
- PAM Authentication plugin
- LDAP Plugin
- External Monitor Job Type Plugin
- Run Condition Plugin
- Conditional BuildStep
- Parameterized Trigger plugin
- jQuery plugin
- Build Pipeline Plugin
使用pipeline
在jenkins主頁(yè)點(diǎn)擊新建視圖
選擇
Build Pipeline View
創(chuàng)建完成后對(duì)它進(jìn)行一些配置,關(guān)鍵配置內(nèi)容為
Select Initial Job
作為初始Job關(guān)聯(lián)多個(gè)Job
真實(shí)的工作環(huán)境有很多job礼搁,比如
編譯饶碘,然后執(zhí)行靜態(tài)代碼檢查、單元測(cè)試馒吴、然后部署服務(wù)器扎运、服務(wù)器重啟、進(jìn)行ui測(cè)試等
需要對(duì)這些job進(jìn)行一些設(shè)置將它們的上下游關(guān)系配置好
例如初始job是Check-Env
饮戳,可以先對(duì)它進(jìn)行設(shè)置豪治。
進(jìn)入該job的配置頁(yè)面,然后選擇構(gòu)建后操作
接著選擇Trigger parameterized build on other projects
Project to build
欄填入它下游的job可以是一個(gè)也可以是多個(gè)扯罐,多個(gè)使用,
分隔開(kāi)
- 配置依賴(lài)流可以參考
http://www.cnblogs.com/zz0412/p/jenkins_jj_03.html
需要注意的是负拟,如果下游的job構(gòu)建時(shí)不需要參數(shù)的話,必須將
Tigger build without parameter
勾上歹河,否則不會(huì)自動(dòng)執(zhí)行下游的任務(wù)了掩浙。如果有參數(shù)的話,將具體的參數(shù)名稱(chēng)以及值填入Add parameter
中
Tigger when build is
可以填入Stable
警告 Job 千萬(wàn)別設(shè)置成一個(gè)環(huán)路
需要注意的是各個(gè)任務(wù)間千萬(wàn)別設(shè)置成一個(gè)環(huán)路秸歧,例如job1的下游項(xiàng)目設(shè)置成job3厨姚,而job3的下游項(xiàng)目又設(shè)置成job1
如果這樣設(shè)置了,那整個(gè)jenkins就掛了键菱,即便重啟也沒(méi)有用
要解決的話只能去jenkins的workspace
目錄將設(shè)置成環(huán)路的job刪除
然后重啟jenkins
pipeline視圖
查看各個(gè)job的執(zhí)行情況
- 綠色是表示執(zhí)行通過(guò)的
- 黃色是正在執(zhí)行的
- 藍(lán)色是未執(zhí)行的
- 紅色是執(zhí)行失敗的