python獲取jenkins服務裡的檔案及備份

2021-09-23 08:04:42 字數 2142 閱讀 8038

需求是這樣的 我們使用了jacoco統計應用的**覆蓋率,產生了一些報告,但是清理報告的時候,需要對本輪的報告

做乙個備份,這個同樣適用於類似的情形,比如一些重要的檔案,目標是備份到jenkins所在的伺服器上

如下圖

url 如下

下圖也是乙個最終的效果

計畫使用python指令碼 整合到乙個jenkins job裡面

首先發現python 有庫可以操作jenkins  ,using python-jenkins

,然後考慮直接使用http 獲取檔案,然後嘗試發現jenkins 有basic-auth 驗證

可以使用如下通過校驗

# 使用者名稱

user_id = 'jiangfei'

# 使用者的token值(每個user有對應的token)

使用者名稱和token 在jenkins這裡獲取

主體**如下

# paramnum ==2時候是只有job名  ==3時候 最後乙個引數是group name名字

paramnum = len(sys.ar**)

print(paramnum)

jobname = sys.ar**[1]

# 3 引數帶group name

if paramnum == 3:

groupname = sys.ar**[2]

# groupname為空

if paramnum == 2:

urlfile = 'http://jenkins-test.你的jenkins網域名稱.com/job/'+jobname+'/html_20report/*zip*/html_20report.zip'

elif paramnum == 3:

urlfile = 'http://jenkins-test.你的jenkins網域名稱.com/view/' + groupname + '/job/' + jobname + '/html_20report/*zip*/html_20report.zip'

# 使用者名稱

user_id = 'jiangfei'

# 使用者的token值(每個user有對應的token)

nowtime = str(datetime.datetime.now()). replace(':', "").replace(' ', "-").replace('.', "")

print(nowtime)

# 檔案獲得後存放在自己工程在jenkins的工作空間裡面

filereportpath = "/data/test_jenkins/workspace/" + jobname

# 也可以放在jenkins服務的乙個具體路徑下面 比如

# filereportpath = "/qa/reporthistory/" + jobname

if not os.path.exists(filereportpath):

os.makedirs(filereportpath)

with open(filereportpath + "/" + jobname + nowtime+".zip", "wb") as code:

code.write(res.content)

大家可以根據自己情況做一些調整 這個例子還是帶了一些業務**。

完整**參考我的github

參考:

快速獲取Jenkins上build

很多公司都會做ci持續整合,一般ci都用jenkins.如何快速獲取jenkins 上的build?一般公司都會有ci伺服器,各個專案build都在上面觸發或生成。如何快速獲取ci伺服器上最新的build呢?有的人可能想到爬蟲,當然爬蟲可以做到,但是比較複雜,還要判斷最新的build是否是succe...

jenkins 啟動多個job以及獲取返回值

pipeline中各個節點的介紹 獲取bat返回值 啟動多個job node master currentbuild.description foodescription stage build wait false stage build1 stage build2 stage build3 這是...

jenkins獲取單元測試資料

定義要獲取的指標 testfailcount testskipcount testtotalcount。分別為測試失敗用例總數 跳過的測試用例總數和用例總數。獲取到這些指標後就能對單個專案的單元測試設定一下度量指標。單元測試覆蓋率可以在sonarqube平台獲取 獲取指標資料的介面 我之前第一想法是...