Jenkins 配置心得

[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ù)說明

# 參數(shù)格式
* * * * *
# 每天1點(diǎn)開始依次構(gòu)建
H 1 * * *
# 每個(gè)小時(shí)的第 0 分鐘執(zhí)行一次構(gòu)建
0 * * * *
# 每周一到五,當(dāng)天3點(diǎn)開始依次構(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)庫,看代碼是否發(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'
#定義用戶的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主頁點(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的配置頁面,然后選擇構(gòu)建后操作
接著選擇Trigger parameterized build on other projects

Project to build 欄填入它下游的job可以是一個(gè)也可以是多個(gè),多個(gè)使用,分隔開

需要注意的是,如果下游的job構(gòu)建時(shí)不需要參數(shù)的話,必須將Tigger build without parameter勾上,否則不會(huì)自動(dòng)執(zhí)行下游的任務(wù)了。如果有參數(shù)的話,將具體的參數(shù)名稱以及值填入Add parameter

Tigger when build is 可以填入Stable

警告 Job 千萬別設(shè)置成一個(gè)環(huán)路

需要注意的是各個(gè)任務(wù)間千萬別設(shè)置成一個(gè)環(huán)路,例如job1的下游項(xiàng)目設(shè)置成job3,而job3的下游項(xiàng)目又設(shè)置成job1
如果這樣設(shè)置了,那整個(gè)jenkins就掛了,即便重啟也沒有用

要解決的話只能去jenkins的workspace目錄將設(shè)置成環(huán)路的job刪除
然后重啟jenkins

pipeline視圖

查看各個(gè)job的執(zhí)行情況

  • 綠色是表示執(zhí)行通過的
  • 黃色是正在執(zhí)行的
  • 藍(lán)色是未執(zhí)行的
  • 紅色是執(zhí)行失敗的
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容