成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何找到“BB”之人?(Break Build)

開發(fā) 前端
我們可以通過編寫 Jenkins Pipeline 腳本,在構(gòu)建失敗時遍歷當(dāng)前構(gòu)建及其之前的構(gòu)建記錄,收集每個構(gòu)建中的提交者信息,并將這些信息通過郵件發(fā)送給相關(guān)人員。這不僅能迅速通知提交者修復(fù)問題,還能確保代碼的穩(wěn)定性和質(zhì)量。

你好,我是悟空。

圖片圖片

一、前言

我們先來看一封 Break Build(BB) 郵件,如下圖所示,這封郵件清楚的展示誰 BB 了,以及如何 BB 的。

圖片圖片

今天我們要聊的話題是在自動化部署的過程中,如何找到造成本次部署失敗的人。而在持續(xù)集成領(lǐng)域,部署失敗被稱作 Break Build,簡稱 BB。

你是否遇到過自己提交了的代碼,導(dǎo)致整個項目的代碼編譯失敗?

你是否因為編譯失敗而被郵件通報?

你是否因為被郵件通報而被罰money?

這些都是我們之前項目組里面開發(fā)同學(xué)親身經(jīng)歷。

他們因為將未經(jīng)本地編譯通過的代碼直接往代碼倉庫提交,導(dǎo)致服務(wù)器編譯打包部署時,直接報錯,而耽誤了整個測試進(jìn)度。

然后這些開發(fā)同學(xué)就會收到一封 “BB” 郵件,凡是收到這封郵件的人,所在的小組會被記一筆小黑賬,后續(xù)需上交一點點 money~

二、Break Build 是什么?

“Break build”是一個軟件開發(fā)和持續(xù)集成(CI)領(lǐng)域的術(shù)語,通常指的是在構(gòu)建軟件的過程中遇到的失敗或錯誤,導(dǎo)致整個構(gòu)建過程無法完成。它提醒開發(fā)團(tuán)隊存在問題需要修復(fù),確保只有穩(wěn)定且無錯誤的代碼才能進(jìn)入后續(xù)階段或部署到生產(chǎn)環(huán)境。

2.1 定義

構(gòu)建過程包括從編譯源代碼、運(yùn)行測試到打包成可部署的應(yīng)用程序。當(dāng)這個過程中的某一步失敗時,我們稱之為“break build”。

2.2 常見原因

  • 代碼錯誤:如語法錯誤、編譯錯誤或邏輯錯誤。
  • 測試失敗:單元測試、集成測試或端到端測試未通過。
  • 依賴問題:缺少必要的庫或版本沖突。
  • 配置錯誤:構(gòu)建腳本或配置文件中的錯誤。
  • 環(huán)境問題:構(gòu)建環(huán)境中的配置或資源問題,例如磁盤空間不足或網(wǎng)絡(luò)問題。

2.3 影響

  • 開發(fā)效率:開發(fā)人員需要花時間查找和修復(fù)錯誤,可能會延遲項目進(jìn)度。
  • 團(tuán)隊協(xié)作:其他開發(fā)人員可能無法在代碼庫的最新版本上繼續(xù)工作,直到構(gòu)建問題解決。
  • 質(zhì)量保障:未能通過構(gòu)建的代碼不能部署到生產(chǎn)環(huán)境,確保了只有通過所有測試的代碼才會被發(fā)布。

2.4 處理方法

  • 快速反饋:通過持續(xù)集成工具(如 Jenkins、GitLab CI、Travis CI 等)提供即時反饋,幫助開發(fā)人員迅速發(fā)現(xiàn)和解決問題。
  • 自動化測試:在構(gòu)建過程中自動運(yùn)行各種測試,確保代碼的正確性和穩(wěn)定性。
  • 代碼審查和靜態(tài)分析:在提交代碼前進(jìn)行代碼審查和使用靜態(tài)分析工具,減少引入錯誤的機(jī)會。
  • 分階段構(gòu)建:將構(gòu)建過程分成多個階段(編譯、測試、打包等),可以更快地定位和解決問題。

三、如何找到 Break Build 之人

3.1 通知邏輯

我們可以編寫 Jenkins 的 Pipeline 腳本,如果此次打包失敗了,則找出此次構(gòu)建中的提交記錄,并將代碼提交者、提交注釋、受影響的文件列表及提交時間都打印出來,并通過郵件形式發(fā)送給觸發(fā)構(gòu)建者以及提交代碼的同學(xué)。如果打包成功了,則發(fā)送郵件給觸發(fā)構(gòu)建者。流程如下所示:

圖片圖片

對應(yīng)的 pipeline 腳本如下圖所示:

圖片圖片

3.2 找出代碼提交者

思路:遍歷當(dāng)前構(gòu)建及其之前的構(gòu)建成功之間構(gòu)建記錄,然后收集每個構(gòu)建中的提交者信息,最后發(fā)郵件給提交者。

流程如下圖所示:

圖片圖片

這里有個地方非常拗口:遍歷當(dāng)前構(gòu)建及其之前的構(gòu)建成功之間構(gòu)建記錄,怎么理解呢?

如下圖所示,構(gòu)建記錄 #53 是成功的,那么本次要遍歷的構(gòu)建記錄就是 #54~#58 這幾條記錄。

為什么不是直接找本次構(gòu)建中的代碼提交提交記錄呢?原因是上一次構(gòu)建后,下一次就拿不到提交記錄了,

圖片圖片

對應(yīng)的 pipeline 腳本如下圖所示:

圖片圖片

四、執(zhí)行結(jié)果

執(zhí)行構(gòu)建后,可以看到本次構(gòu)建中,有兩次代碼提交,有兩個提交者,可能為同一個人。那么這兩個提交者都會收到 Break Build 郵件,至于是誰最終造成的,得看部署日志了。

4.1 打印提交記錄

圖片圖片

對應(yīng)的失敗通知的郵件模板中打印提交記錄的 html 如下所示:

圖片圖片

4.2 打印詳細(xì)的提交記錄

在失敗通知郵件中還會打印構(gòu)建日志,如下圖所示:

圖片圖片

對應(yīng)的失敗通知郵件模板中的打印構(gòu)建日志的 html 如下所示:

圖片圖片

4.3 查看完整的構(gòu)建日志

從郵件中還是無法確認(rèn)是誰提交的代碼造成的問題,這個時候可以看下構(gòu)建日志。

如下圖所示,可以看到具體哪個地方報錯了,然后找下誰改的這個文件以及代碼行就能知道是誰造成編譯失敗了。

圖片郵件模板

五、總結(jié)

在自動化部署過程中,找到導(dǎo)致構(gòu)建失敗的提交者至關(guān)重要。

構(gòu)建失敗(Break Build,簡稱BB)通常由于代碼錯誤、測試失敗、依賴問題等原因引起,影響開發(fā)效率和團(tuán)隊協(xié)作。

我們可以通過編寫 Jenkins Pipeline 腳本,在構(gòu)建失敗時遍歷當(dāng)前構(gòu)建及其之前的構(gòu)建記錄,收集每個構(gòu)建中的提交者信息,并將這些信息通過郵件發(fā)送給相關(guān)人員。這不僅能迅速通知提交者修復(fù)問題,還能確保代碼的穩(wěn)定性和質(zhì)量。

通過持續(xù)集成工具的快速反饋和自動化測試,我們能夠有效地預(yù)防和處理 Break Build,提高整體開發(fā)效率。

責(zé)任編輯:武曉燕 來源: 悟空聊架構(gòu)
相關(guān)推薦

2020-06-08 09:48:31

語音技能智能

2021-05-10 11:08:00

人工智能人臉識別

2012-07-13 14:01:56

前端前端職位前端開發(fā)

2018-07-18 11:18:13

2014-07-03 09:38:19

2010-08-25 15:29:31

菜鳥

2011-11-16 11:12:46

DNSDNS記錄DNS恢復(fù)

2011-11-18 10:40:16

Windows活動目錄DNS記錄

2011-06-03 09:58:29

開源軟件

2015-02-28 10:26:54

JMP

2014-07-04 10:41:37

2012-11-16 09:25:48

移動SaaS移動SaaS應(yīng)用軟件即服務(wù)

2022-02-18 00:02:31

加密貨幣愛情安全

2022-12-22 20:47:01

腳本循環(huán)結(jié)構(gòu)

2017-04-13 19:26:21

2015-04-03 12:47:14

NoSQL開源非關(guān)系型數(shù)據(jù)庫

2019-01-22 15:23:40

云計算人才IT員工

2015-12-24 18:40:30

暖爸爸

2019-10-11 08:00:00

Linux命令最大文件

2023-11-13 15:58:33

RPA人工智能
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 福利片在线观看 | 国产精品久久久久久久久久免费看 | 欧美一二三 | 精品亚洲一区二区三区四区五区高 | 视频在线日韩 | 欧美日韩黄 | 欧美日韩一本 | 蜜桃av鲁一鲁一鲁一鲁 | 亚洲系列第一页 | 成人在线观看免费观看 | 欧美日产国产成人免费图片 | 国产中文视频 | 欧美日韩一区二区三区四区 | 国产特级毛片aaaaaa喷潮 | 日韩伦理电影免费在线观看 | 亚洲影视在线 | 精品视频在线播放 | 国产精品亚洲一区二区三区在线观看 | 日韩午夜影院 | 成人在线观看免费爱爱 | 日韩欧美一区二区三区 | 日日噜噜噜夜夜爽爽狠狠视频97 | 亚洲欧美少妇 | 天堂素人约啪 | 高清国产午夜精品久久久久久 | www.国产日本 | 91看片在线| 91精品国产色综合久久不卡98 | 国产精品色一区二区三区 | 国产精品一区2区 | 人妖一区| 欧美日韩在线免费观看 | 久久久久久久一区二区 | 欧美一区二区三区久久精品 | 日韩在线不卡视频 | 男女网站在线观看 | 精品国产乱码久久久久久蜜柚 | 一区网站 | 午夜av影院| 久久久久久国产免费视网址 | 免费看国产一级特黄aaaa大片 |