SlideShare a Scribd company logo
AutoBuild HRISSVD1 莊子遷 (Leon Chuang) 2007.6.25
大綱 什麼是 AutoBuild? (What) 為何要 AutoBuild? (Why) 怎麼做 AutoBuild? (How) 工具 實作內容 demo 結語
什麼是 AutoBuild? 程式碼建置流程 (Build)  自動化 (Auto) 方便後續之 Deploy 方便取得各個版本
為何要 AutoBuild? 避免必須依賴[人]進行 持續性 手動建置 Daily-Paul-Build    Daily-Leon-Build  不太好吧 ! Daily-Paul-Build     AutoBuild   省事多了 ! 避免因[人]的延誤導致下游無法工作 Seily : 『  Paul,  開發機 今天的 換版好了沒 ?  我昨天寫好的統計報表怎麼都跑不出來呢 ?  我明明有 Check in 到 Source Safe 啊 ! 』 Paul : 『換版要 30 分鐘哦,換好再通知妳』 Lynn : 『今天怎麼還沒換版呢 ? 』   Paul( 在家裡發高燒 ) : 『完了 ! 沒人換版 !...( 頭好像更燒了 ) 』
怎麼做 AutoBuild? 現成的工具軟體 CruiseControl.NET :原始碼異動監看、排程控制、現成的軟體外掛模組 (NAnt, NUnit…) 、紀錄檔、通知… NAnt :強化版的批次工具軟體 自製的批次工具 VSSHistoryParser :轉換 Visual SourceSafe History Report 工具 BatchSQL :批次執行 SQL 指令檔工具 Batch File + Task Scheduler :額外的整合批次檔搭配排程控制器
工具 (1) - CruiseControl.NET Integration Process
工具 (1) – CruiseControl.NET ( 續 )
工具 (2) - NAnt 功能強大的批次命令執行工具 經由設定檔 (xml format) 進行命令集設定 設定檔內可使用變數 可使用的功能如 FileSystem Control 、 Code Repository Access 、 Code Compile 、 Compress Files 及 MailSend 等等 … NUnit 、 NDoc 的支援 支援自訂 Script
工具 (3) - BatchSQL Customers.sql -- simple query -- select CustomerID,CompanyName,City from Customers where City = 'Sao Paulo' Orders.sql -- -- simple query with error field name [EmployeeIE] -- select OrderID,CustomerID, EmployeeIE  from Orders Products.sql -- simple query -- select ProductID,ProductName,QuantityPerUnit ,UnitPrice,UnitsInStock from Products where UnitPrice>80.0
工具 (4) - VSSHistoryParser SS.exe VSSHistoryParser For BatchSQL
實作內容 (1) –  架構 Build Server CruiseControl.NET 設置 ccnet.config Webdashboard 設定虛擬目錄 ccnet.exe(run as console application) or ccservice.exe(run as windows service) NAnt BatchSQL VSSHistoryParser 設置 Build-File
實作內容 (2) – CCNet 專案 DBScriptSolution 更新資料庫物件如: View, Function, Stored-Procedure, Trigger 等… DGPRSBSolution 更新網站應用程式  (HR_DGPRSB) DGPRSBRPTSolution 更新 Reporting Server 上之報表  (HR_DGPRSB_RPT) ReportJobSolution 更新批次報表應用程式及批次報表檔
DEMO – AutoBuild 操練
結語 Paul :有 AutoBuild 真好,不用每天 9:00~9:30 邊換版邊要擔心太晚換版了 Seily :終於不用每天早上追問 Paul 到底有沒有換好開發機的版本, AutoBuild 真厲害 Lynn :不用怕 Paul 又感冒發燒,有 AutoBuild 搞定換版 Leon :不用 Daily-Leon-Build 就好了…
Q & A
參考資料 CruiseControl.NET Home NAnt  Home NUnit Home NDoc Home

More Related Content

PDF
Simple kissy1.3
yiming he
 
PPTX
大規模微服務導入 - #2 從零開始的微服務 .NET Core 框架設計
Andrew Wu
 
PPTX
Angular 4 新手入門攻略完全制霸
Will Huang
 
PDF
Class 20170126
Ivan Wei
 
PDF
喬叔 Elasticsearch Index 管理技巧與效能優化
Joe Wu
 
PPTX
Micro-frontends with Angular 10 (Modern Web 2020)
Will Huang
 
PPTX
ASP.NET Core 6.0 全新功能探索
Will Huang
 
PPTX
容器驅動開發 - .NET Conf 2017 @ 台中
Andrew Wu
 
Simple kissy1.3
yiming he
 
大規模微服務導入 - #2 從零開始的微服務 .NET Core 框架設計
Andrew Wu
 
Angular 4 新手入門攻略完全制霸
Will Huang
 
Class 20170126
Ivan Wei
 
喬叔 Elasticsearch Index 管理技巧與效能優化
Joe Wu
 
Micro-frontends with Angular 10 (Modern Web 2020)
Will Huang
 
ASP.NET Core 6.0 全新功能探索
Will Huang
 
容器驅動開發 - .NET Conf 2017 @ 台中
Andrew Wu
 

Viewers also liked (17)

PPT
Изследване на пазара на телекомуникации в България
Nikolay Georgiev
 
PDF
9789866135910 04
TAAZE 讀冊生活
 
PDF
історія україни 9 кл
Школа Леди и Кадетство
 
PDF
978 1-4438-1394-5-sample
KhanhHoa Tran
 
PPTX
99 wealth presentation
Kuya Ryan
 
PDF
9789740331278
CUPress
 
PDF
9789740331179
CUPress
 
PDF
DIGITAL PR в действии
Samson Bezmyatezhny
 
PDF
97m3121b
Kissan Jamjam
 
DOCX
9611 Dobrana Ekipa
Nastoletnia Batalia
 
PPTX
9.6 solving rational equations
hisema01
 
DOC
9820 Plik Tekstowy2
Nastoletnia Batalia
 
DOC
982藝文第2次領域會議
jimmy Hsieh
 
PPS
98[1].2.6用深情陪到最後
Jaing Lai
 
DOC
98 2表藝課程計畫表
jimmy Hsieh
 
PPT
99年3月19日部落格
silence4017
 
PDF
98215_Dolan-Cancian_cvr final
Elizabeth Cancian
 
Изследване на пазара на телекомуникации в България
Nikolay Georgiev
 
9789866135910 04
TAAZE 讀冊生活
 
історія україни 9 кл
Школа Леди и Кадетство
 
978 1-4438-1394-5-sample
KhanhHoa Tran
 
99 wealth presentation
Kuya Ryan
 
9789740331278
CUPress
 
9789740331179
CUPress
 
DIGITAL PR в действии
Samson Bezmyatezhny
 
97m3121b
Kissan Jamjam
 
9611 Dobrana Ekipa
Nastoletnia Batalia
 
9.6 solving rational equations
hisema01
 
9820 Plik Tekstowy2
Nastoletnia Batalia
 
982藝文第2次領域會議
jimmy Hsieh
 
98[1].2.6用深情陪到最後
Jaing Lai
 
98 2表藝課程計畫表
jimmy Hsieh
 
99年3月19日部落格
silence4017
 
98215_Dolan-Cancian_cvr final
Elizabeth Cancian
 
Ad

部門會議 960625 Leon

  • 1. AutoBuild HRISSVD1 莊子遷 (Leon Chuang) 2007.6.25
  • 2. 大綱 什麼是 AutoBuild? (What) 為何要 AutoBuild? (Why) 怎麼做 AutoBuild? (How) 工具 實作內容 demo 結語
  • 3. 什麼是 AutoBuild? 程式碼建置流程 (Build) 自動化 (Auto) 方便後續之 Deploy 方便取得各個版本
  • 4. 為何要 AutoBuild? 避免必須依賴[人]進行 持續性 手動建置 Daily-Paul-Build  Daily-Leon-Build 不太好吧 ! Daily-Paul-Build  AutoBuild 省事多了 ! 避免因[人]的延誤導致下游無法工作 Seily : 『 Paul, 開發機 今天的 換版好了沒 ? 我昨天寫好的統計報表怎麼都跑不出來呢 ? 我明明有 Check in 到 Source Safe 啊 ! 』 Paul : 『換版要 30 分鐘哦,換好再通知妳』 Lynn : 『今天怎麼還沒換版呢 ? 』 Paul( 在家裡發高燒 ) : 『完了 ! 沒人換版 !...( 頭好像更燒了 ) 』
  • 5. 怎麼做 AutoBuild? 現成的工具軟體 CruiseControl.NET :原始碼異動監看、排程控制、現成的軟體外掛模組 (NAnt, NUnit…) 、紀錄檔、通知… NAnt :強化版的批次工具軟體 自製的批次工具 VSSHistoryParser :轉換 Visual SourceSafe History Report 工具 BatchSQL :批次執行 SQL 指令檔工具 Batch File + Task Scheduler :額外的整合批次檔搭配排程控制器
  • 6. 工具 (1) - CruiseControl.NET Integration Process
  • 7. 工具 (1) – CruiseControl.NET ( 續 )
  • 8. 工具 (2) - NAnt 功能強大的批次命令執行工具 經由設定檔 (xml format) 進行命令集設定 設定檔內可使用變數 可使用的功能如 FileSystem Control 、 Code Repository Access 、 Code Compile 、 Compress Files 及 MailSend 等等 … NUnit 、 NDoc 的支援 支援自訂 Script
  • 9. 工具 (3) - BatchSQL Customers.sql -- simple query -- select CustomerID,CompanyName,City from Customers where City = 'Sao Paulo' Orders.sql -- -- simple query with error field name [EmployeeIE] -- select OrderID,CustomerID, EmployeeIE from Orders Products.sql -- simple query -- select ProductID,ProductName,QuantityPerUnit ,UnitPrice,UnitsInStock from Products where UnitPrice>80.0
  • 10. 工具 (4) - VSSHistoryParser SS.exe VSSHistoryParser For BatchSQL
  • 11. 實作內容 (1) – 架構 Build Server CruiseControl.NET 設置 ccnet.config Webdashboard 設定虛擬目錄 ccnet.exe(run as console application) or ccservice.exe(run as windows service) NAnt BatchSQL VSSHistoryParser 設置 Build-File
  • 12. 實作內容 (2) – CCNet 專案 DBScriptSolution 更新資料庫物件如: View, Function, Stored-Procedure, Trigger 等… DGPRSBSolution 更新網站應用程式 (HR_DGPRSB) DGPRSBRPTSolution 更新 Reporting Server 上之報表 (HR_DGPRSB_RPT) ReportJobSolution 更新批次報表應用程式及批次報表檔
  • 14. 結語 Paul :有 AutoBuild 真好,不用每天 9:00~9:30 邊換版邊要擔心太晚換版了 Seily :終於不用每天早上追問 Paul 到底有沒有換好開發機的版本, AutoBuild 真厲害 Lynn :不用怕 Paul 又感冒發燒,有 AutoBuild 搞定換版 Leon :不用 Daily-Leon-Build 就好了…
  • 15. Q & A
  • 16. 參考資料 CruiseControl.NET Home NAnt Home NUnit Home NDoc Home

Editor's Notes

  • #7: Cruise Control 其實是一種汽車恆速行駛操緃裝置 CruiseControl.NET 是一套持續整合的伺服端軟體 本頁是整合流程的示意圖 上方的電腦圖示表示 Remote Client Step 1. Code Changed 造成 CCNet Server 被 Invoked( 觸發 ), 起動了整合流程 Step 2, 3. 藉由自動建置工具 NAnt 由 Code Repository 取得最新程式碼 Step 4,5,6. 進行 Visual Studio( 建置方案專案 ), NUnit( 批次測試 ), FxCop( 程式碼格式驗證 ) 等工作 Step 7. 將 4,5,6 產出匯集並產生建置報告及狀態修改 Step 8.CCNet 以 Mail 匯報結果 Step 9. Remote Client 可經由 CCNet Server 檢視專案建置狀態 Step 10. 可經由 DashBoard 網站了解建置狀況