看板 Soft_Job 關於我們 聯絡資訊
[前後刪掉一些] ※ 引述《Wolfken ()》之銘言: : CI的兩個phase是大量自動化的重點所在。commit phase包括build跟unit test,還有少 : 量基本的functional test。基本要求是在15分鐘內完成,所以當新code進來時,可以快 : 速的利用unit test確認沒有問題。通過commit phase的build會進入automated : acceptance phase,這邊是functional test主要跑的地方,要求是30~60分鐘內要跑完。 : 除了自動化以外,CI的重點是圍繞在自動化pipeline建立一套流程跟紀律,並且搭配新 : 的文化和想法。舊的方法是build永遠都是處於紅燈(fail)狀態,直到最後要release才 : 會變綠燈。CI要求build永遠是綠燈,只要任何新code讓它變成紅燈,所有人要停下手 : 邊的工作,馬上去修正它。這是從Toyota的stop the line學來的,Toyota的產線工人 : 只要發現問題,可以馬上要求整個生產線停下來,先去處理這個問題。如果commit phase : 出問題,開發者有十分鐘可以修正,十分鐘修正不了就是roll back。acceptance phase : 出問題則有25~30分鐘。 我前一家公司有類似作法, 不過它是間IC設計公司,不是純軟. 那套系統是併購英國公司後,導入他們的軟體流程. 略有差異的地方在於, 他要求我們commit code之前, 先丟test server. test server做的就包含 build + unit test + 部份function test. 要等到test server送來pass的 email, 你才能commit. 這種作法經常會有個瓶頸,就是test server要排隊等測試. 但相對來說變紅燈的機率似乎會比較低? 依個人的使用經驗, 只要系統強制要求要保持在綠燈狀態, 工程師自然會勤於commit, 因為你不時常commit, 別人會一直commit, 然後你想commit時就要一直merge -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.160.237.236
NDark:簡而言之先搶先贏. 01/29 23:22
abcdefghi:過不了test server時,丟給新進的小咖當訓練,皆大歡喜 01/29 23:25
Wolfken:所以test server不能只有一套,team大的話建test server的 01/29 23:47
Wolfken:成本就會高一些,不過現在硬體都便宜得很,比起專案品質低 01/29 23:48
Wolfken:落或是進度落後,那點錢真的只是小錢 01/29 23:48
appleboy46:IC 設計公司,買一台強大伺服器不為過吧 128G RAM 01/30 08:57
appleboy46:上面跑 Jenkins 等 ... 同時編譯好幾個 Android 都OK 01/30 08:58
darthv:英國公司。CSR? 02/01 09:38