需求是這樣的 我們使用了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平台獲取 獲取指標資料的介面 我之前第一想法是...