首先,星期三的會議,以我破英文對客戶說話的理解,好像可以先跑測試,之後如果沒有更新,其實不用再跑?
但此番理論跟我從 git hook 看到的禁制似乎有所違背?
果然,不管你有沒有跑完測試,git push 就是要你再跑一次,但我實在沒空把整個 hook 看過一遍,也許答案藏在測試的 Makefile 中也說不一定?
總之,星期三晚上的推 Code 果然還是因為有人比我早更新而導致我推 Code 失敗!還好,當天還算幸運,第二次就順利推 Code 成功,故我當天就又推了一次,本想這樣一來,我六日就可以先不推 Code,於是當天又搞到 2 點才睡,
無奈,本週還是要推 Code,但想到可以讓同事以及專案流程順利一點,還是默默地從星期五晚上開始推 Code,也許可以像星期三那樣走狗屎運也說不準?
本週測試項目來到約 13X 個,就在順利跑完 120 個左右後,一來是剩餘測試卡住好久,二來是我在另外一個 reference 資料夾檢查的結果已經有人又推 Code 成功,於是就不等了,凌晨 12 點半就上床睡了。
不知是不是心懸測試結果的緣故,半夜四點醒來後就睡不著了,忍到七點多吃完早餐才進去客戶工作站檢查結果,沒想到測試居然還沒跑完,因為已經知道不可能成功,還是按下 Ctrl + C 停止所有測試,沒想到這是個不對的方式,直到後來才發現後果?(推 Code 有問題要停掉,一定要用 bkill,不能 Ctrl + C)
因為星期六通常還是有人推 Code,故我的 SOP 已經改成星期六晚上 8 點後再視情況決定推 Code 事宜!
星期六晚上 8 點過後,距離最後一個 commit 已經有一段時間了,應該暫時沒人推 Code 了,故還是勇敢的 git push。
沒想到在剩下 1X 個項目的時候,測試又被卡住了,檢查一下 git commit 情況,已經有人截足先登了,於是決定取消,但這次用 bkill 終止所有測試。
星期日一早又看到一堆 git commit 的更新,說真的我也無從判斷該不該做,想了一下,還是默默地跑了下去。
老樣子,測試又卡住了,嚴格來說,是跑工作的 Server 都掛了,這似乎已經是常態了?
還好剛剛所有的測試都跑完了,只是要上傳的時候,一直跟我說 Git is locked?
等了幾次重試後,突然靈機一動,感覺跟星期五強制 Ctrl + C 有關?
於是火速回頭檢查禁制,果然此訊息是腳本本身的訊息而不是 git command 的訊息!
總之,此腳本推 Code 時,會產生一個 /tmp/git-push-2 的檔案,腳本以此檔案來避免有人同時推 Code。
檢查的結果,果然所有人是我,檔案建立時間就是星期五晚上的時間。
果斷的砍掉檔案之後,跑一跑突然又出現一個錯誤,然後整個腳本就結束了,本來以為又要重推了,髒話都要罵出來了?
還好後來想了一下,這個錯誤應該是 git 想要幫你重整 db 的動作,不影響推 Code 結果。
最後終於脫離了從星期五晚上執行到剛剛的鬧劇,真是不堪回首呀?
唉,少點心眼都不行,還好我曾經是一個貨真價實的軟體工程師,不然真的會被搞死,六日原本的計畫又泡湯了,幸好早上監控推 Code 時,順手把 Android PDF Viewer 完成,不然真的會幹到不行。

沒有留言:
張貼留言