在Jenkins成功建置專案後,通常我們會將編譯後的應用程式或軟體封存(archive)起來,作法與備份類似,如此可以方便未來回顧每個建置當時所產出的成品(artifact)為何。例如,每個成功建置的軟體,會有自己的版本編號,將每個不同版本編號的軟體封存起來,除了可以了解目前的建置版本,若釋出的應用程式有defect,也可以取出相對應的版本進行測試。
在Jenkins中若要設定封存功能,可以在Build Job下的Post-build Actions中加入Archive the artifacts。
Files to archive中可填入某個路徑或資料夾,如下圖表示要將bin底下所有檔案封存起來。要注意的是,這裡的路徑是相對於Jenkins中workspace的路徑。
設定完成並建置專案,可以在建置成功的結果頁面中看到Build Artifacts樹狀選單,將選單展開即可以看到建置成品。
在檔案系統中也可以看到封存的成品。
如果建置成品是特定副檔名的封裝檔,例如在建置時已經將應用程式封裝成MSI檔,在設定Files to archive路徑時,也可輸入如下圖路徑
在Build Artifacts樹狀選單中就可以看到被封存的封裝檔。
到目前為止設定上都不困難,然而Jenkins內建的封存功能,預設是將建置成品各別放在每個建置結果的資料夾下,如C:\Jenkins\jobs\[Job Name]\builds\181\archive\,如此便無法集中管理封存檔。若要集中管理,可以安裝ArtifactDeployer Plugin,也是我目前封存建置成品使用的plugin。設定上不會太困難,有興趣的朋友可以試試。
November 30, 2013
November 19, 2013
WiX中加入.NET Framework版本檢查 (2)
在WiX中加入.NET Framework版本檢查一文中介紹如何在WiX中加入對.NET Framework 4.0的檢查。如果安裝環境沒有.NET Framework 4.0的話,安裝過程中會跳出警告視窗,在使用者按下確定按鈕後即會停止整個安裝過程。
接下來如果使用者想要安裝.NET Framework 4.0,則必須自行瀏覽官方網站進行下載。這時會想,如果能自動開啟官方網站的話對於使用者來說不也挺方便的嗎?透過WiX提供的WixShellExec和CustomAction,可在安裝過程中開啟指定網頁,如下
參考資料
<Property Id="WixShellExecTarget" Value="http://www.microsoft.com/zh-tw/download/details.aspx?id=17718" /> <CustomAction Id="LaunchBrowser" BinaryKey="WixCA" DllEntry="WixShellExec" Impersonate="yes" /> <InstallUISequence> <Custom Action="LaunchBrowser" Before="LaunchConditions"> <![CDATA[NOT NETFRAMEWORK40FULL]]> </Custom> </InstallUISequence> <Condition Message="請先安裝Microsoft .NET Framework 4.0再安裝此軟體"> <![CDATA[NETFRAMEWORK40FULL]]> </Condition>屬性WixShellExecTarget裡的Value即為要開啟的網址。InstallUISequence裡則設定了一個CustomAction檢查安裝過程中若系統環境沒有.NET Framework 4.0,則會開啟下載.NET Framework 4.0的官方網站,最後根據Condition發出警告視窗。Condition裡的條件若不成立的話,Windows Installer將會立刻結束安裝。這裡有一點要特別注意的是,CustomAction裡必須是Before="LaunchConditions"而不是After="LaunchConditions"。若設定為After="LaunchConditions",則會因為Condition執行完因條件不成立而停止安裝,網頁將會無法開啟。
參考資料
November 4, 2013
書評 - Clean Code: A Handbook of Agile Software Craftsmanship
圖片來源:天瓏網路書店 |
所謂的Clean Code,簡單地說其實就是易讀、可維護、可測試且持續重整的程式碼。
聽起來很簡單做起來卻是不容易。要做到易讀,程式碼的命名就要講究。通常我們寫程式仍以英文為主,對於英文非母語的人來說,英文命名是件頭痛的事,畢竟可使用的字彙有限。事實上,對於英文為母語的人來說也是件頭痛的事。測試?功能都寫不完了怎麼寫測試程式,更遑論重整程式碼了。
要做到Clean Code,牽涉到不只是開發人員的專業度,還有其它許多因素,如時程或政治因素。雖說如此,不代表可以不要做或不能做,所以書中提出的一些看法及作法來達到Clean Code,例如程式碼的命名、註解的寫法及程式碼的排版風格等仍是具有參考性。
身為一個專業的開發人員,寫出Clean Code應該是其畢生所追求的目標之一,至少我是這樣告訴自己。把程式碼寫好,不只是為了日後的維護人員(可能是同事,也可能是自己),也是為了提昇整個團隊產出的品質,降低維護所需的成本。雖然有時出於無奈無法達成,但至少盡力做到便是。對於資深開發人員來說,本書可能有一半的內容已經了解或平常已在實踐,但對於初階開發人員來說本書是相當值得參考。閱讀本書前,如果已經看過以下幾本書,讀起來會更為輕鬆,也較為清楚書中所指意思為何。
Design Patterns: Elements of Reusable Object-Oriented Software
Refactoring: Improving the Design of Existing Code
Agile Software Development, Principles, Patterns, and Practices
以上書籍皆有中譯本。
Subscribe to:
Posts (Atom)