亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

基于jenkins構(gòu)建結(jié)果企業(yè)微信提醒

 更新時(shí)間:2020年08月28日 09:15:41   作者:shookm  
這篇文章主要介紹了基于jenkins構(gòu)建結(jié)果企業(yè)微信提醒,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

每當(dāng)jenkin在構(gòu)建之后我們想把構(gòu)建結(jié)果SUCCESS/FAILURE或者其他信息通知給其他人,也許有人會(huì)說,不是有郵件提醒嗎?但是我這里的環(huán)境郵件提醒的話所被通知者并不會(huì)第一時(shí)間去閱讀,所以我們用“釘釘”,“企業(yè)微信”來第一時(shí)間去通知你想通知的小伙伴們。

因?yàn)槲疫@里的環(huán)境用的是企業(yè)微信所以本文都是基于企業(yè)微信來說的,不過在釘釘上也可以使用,也可以利用釘釘在jenkins上的插件,那樣更方便些。

進(jìn)入正題

我們要獲得jenkin的構(gòu)建結(jié)果是SUCCESS還是FAILURE是需要jenkin構(gòu)建完畢才能獲取到的,那么我們從哪里能獲得構(gòu)建結(jié)果以及其他信息呢?

我們可以用日志信息或者api的構(gòu)建信息來獲取

我們 我們可以用日志信息或者api的構(gòu)建信息來獲取,這里我們是基于查看日志來查看構(gòu)建結(jié)果以及其他信息,我這里以windows環(huán)境以及jenkins默認(rèn)安裝環(huán)境來舉例

每一次日志文件的位置我們可以在如圖位置找到

我們?nèi)プ詈笠淮螛?gòu)建結(jié)果查看日志文件

在結(jié)果查看構(gòu)建結(jié)果是否成功

那么我們可以用python來寫個(gè)讀取結(jié)果的腳本,用jenkins來自動(dòng)運(yùn)行

import requests
import json
import urllib.request
import urllib.error
import time
# 獲取構(gòu)建結(jié)果
def getResult():
	fname = pathGitLab
with open(fname, 'rb') as f: #打開文件
first_line = f.readline()# 讀第一行# print(
	first_line)
off = -50# 設(shè)置偏移量
while True:
	f.seek(off, 2)# seek(off, 2) 表示文件指針: 從文件末尾(
		2) 開始向前50個(gè)字符(-50)
lines = f.readlines()# 讀取文件指針范圍內(nèi)所有行# print(
	lines)
if len(lines) >= 2: #判斷是否最后至少有兩行, 這樣保證了最后一行是完整的
last_line = lines[-1]# 取最后一行
print(last_line)
break
off *= 2
if 'FAILURE' in last_line.decode():
	return 1
#
else :
	#return 0
# 獲取下一次構(gòu)建的Number和當(dāng)前構(gòu)建的number
def getNextNumber():
	f = open(r 'C:\Program Files (x86)\Jenkins\jobs\Developer\nextBuildNumber',
		'r')
currentNumber = int(f.read()) - 1
return currentNumber
# 網(wǎng)絡(luò)模塊, 用于企業(yè)微信發(fā)送信息
def jenkins(result):
	url =
	'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=2ef5c862-b2a6-45bc-a183-ee6666666666666666'#
企業(yè)微信機(jī)器人的webhook
if result == 1:
	con = {
		"msgtype": "text",
		"text": {
			"content": "站點(diǎn)構(gòu)建提醒\r\n構(gòu)建站點(diǎn):Developer\r\n構(gòu)建結(jié)果:FAILURE\r\n構(gòu)建失敗,請(qǐng)您檢查代碼并重新構(gòu)建,謝謝"
		},
	}#
else :#con = {
	"msgtype": "text",
	"text": {
		"content": "developer構(gòu)建結(jié)果:構(gòu)建失敗,請(qǐng)檢查代碼后重試!"
	},
}
jd = json.dumps(con).encode('utf-8')
req = urllib.request.Request(url, jd)
req.add_header('Content-Type',
	'application/json')
response = urllib.request.urlopen(req)
if __name__ == '__main__':
	jobCurrentNumber = getNextNumber()# 獲取當(dāng)前構(gòu)建number# print(
		jobCurrentNumber)# myDict = getDict()# 獲取同事所有聯(lián)系方式# 獲取當(dāng)前構(gòu)建的目錄比如D: \
	Jenkins\ jobs\ gk_check\ builds\ 153,
	path =
	"C:\\Program Files (x86)\\Jenkins\\jobs\\Developer\\builds\\" +
	str(jobCurrentNumber) + "\\"
pathGitLab = path + "log"
#獲取svn版本和id信息的文件路徑
pathAuthor = path + "changelog.xml"
#獲取遞交者信息的文件路徑
result = getResult()# 讀取構(gòu)建結(jié)果# print(
	result)
jenkins(result)# 最后執(zhí)行函數(shù)
getResult()

這里的企業(yè)微信的webhook地址我們可以在如下的地方添加機(jī)器人

這樣就可以獲得webhook的地址來進(jìn)行來進(jìn)行企業(yè)微信提醒

接下來我們?cè)趈enkins的構(gòu)建模塊進(jìn)行構(gòu)建后操作

ping 127.1 -n 5 >nul   # 延遲5秒,目的是的等jenkins構(gòu)建完成來獲取結(jié)果
@echo off
D:
cd D:\test
start python developer_error.py  #執(zhí)行腳本

這里再簡(jiǎn)單說下curl 進(jìn)行企業(yè)微信提醒

可以在構(gòu)建最開始和結(jié)尾執(zhí)行curl的命令

ios和Android的自動(dòng)化構(gòu)建結(jié)果也可以企業(yè)微信通知,如下圖

還可以增加其他功能,等待大家去嘗試,如果有什么問題或者創(chuàng)新想法大家可以說一哈

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java編程一個(gè)隨機(jī)數(shù)產(chǎn)生模塊代碼分享

    Java編程一個(gè)隨機(jī)數(shù)產(chǎn)生模塊代碼分享

    這篇文章主要介紹了Java編程一個(gè)隨機(jī)數(shù)產(chǎn)生模塊代碼分享,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • 詳解WebSocket+spring示例demo(已使用sockJs庫)

    詳解WebSocket+spring示例demo(已使用sockJs庫)

    本篇文章主要介紹了WebSocket spring示例demo(已使用sockJs庫),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-01-01
  • 淺談java String不可變的好處

    淺談java String不可變的好處

    這篇文章主要介紹了java String不可變的好處,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Java平閏年判斷的方法總結(jié)

    Java平閏年判斷的方法總結(jié)

    本篇文章給大家整理了Java平閏年判斷的兩種方法,大家在寫程序的時(shí)候如果用的到參考下吧。
    2018-02-02
  • Java中內(nèi)部類的概念與分類詳解

    Java中內(nèi)部類的概念與分類詳解

    一個(gè)類的定義放在另一個(gè)類的內(nèi)部,這個(gè)類就叫做內(nèi)部類,下面這篇文章主要給大家介紹了關(guān)于Java中內(nèi)部類的概念與分類的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-09-09
  • 淺談Java數(shù)值類型的轉(zhuǎn)換與強(qiáng)制轉(zhuǎn)換

    淺談Java數(shù)值類型的轉(zhuǎn)換與強(qiáng)制轉(zhuǎn)換

    這篇文章主要介紹了Java數(shù)值類型的轉(zhuǎn)換與強(qiáng)制轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • SpringSecurity實(shí)現(xiàn)訪問控制url匹配

    SpringSecurity實(shí)現(xiàn)訪問控制url匹配

    本文主要介紹了SpringSecurity實(shí)現(xiàn)訪問控制url匹配,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • 通過入門demo簡(jiǎn)單了解netty使用方法

    通過入門demo簡(jiǎn)單了解netty使用方法

    這篇文章主要介紹了通過入門demo簡(jiǎn)單了解netty使用方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • java.lang.NoClassDefFoundError錯(cuò)誤解決辦法

    java.lang.NoClassDefFoundError錯(cuò)誤解決辦法

    這篇文章主要介紹了java.lang.NoClassDefFoundError錯(cuò)誤解決辦法的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • java中常用工具類之字符串操作類和MD5加密解密類

    java中常用工具類之字符串操作類和MD5加密解密類

    這篇文章主要介紹了java中常用工具類之字符串操作類和MD5加密解密類,需要的朋友可以參考下
    2014-07-07

最新評(píng)論