Wiki


Wiki Table of Contents

Tags

Page Details

First published by:
Last revision by:
2 people found this article useful.

100% of people found this useful
Hướng dẫn: Team Build

Đây là phần hướng dẫn sẽ gồm các mục sau:

Các mục

Strategy

  • Sử dụng một scheduled build để tạo ra các regular builds.
  • Sử dụng một Continuous Integration (CI) build để nhận các feedback một cách nhanh chóng trên các check-ins.
  • Sử dụng một rolling build nếu các CI builds ảnh hưởng bất lợi đến hiệu suất build server .
  • Sử dụng branching để giảm các build breaks.
  • Sử dụng check-in policies để cải thiện chất lượng check-in.
  • Sử dụng build notification alerts để tìm hiểu khi nào các build hoàn thành.

Branching

  • Sử dụng Team Build Types mới khi tạo một phần branch.
  • Chỉnh sửa các path để giải quyết trong TFSBuild.proj files, khi tạo một branch hoàn chỉnh.

Continuous Integration Builds

  • Sử dụng một CI build để nhận nhanh chóng các feedback trên các check-in.
  • Sử dụng một rolling build nếu các CI build có ảnh hưởng xấu đến hiệu suất build server.
  • Hãy đảm bảo là tần số của các rolling build của bạn thường ít hơn các build times.

Customization

  • Sử dụng một custom post-build step để build một installer project.
  • Sử dụng MS Build Toolkit Extras để build các Microsoft .NET 1.1 applications.
  • Sử dụng TFSBuild.proj để chỉnh sửa các build của bạn.
  • Sử dụng một custom pre-build step để build một project có phụ thuộc đến các team project khác.

Deployment

  • Trên các team lớn, install các build services trên một server riêng.

Performance

  • Sử dụng các incremental builds để cải thiện hiệu suất.
  • Tránh việc đồng bộ hóa các folder dự phòng trong các build của bạn.
  • Sử dụng các workspaces để tránh check out các file và project không mong muốn khi đang thực hiện một Team Build.
  • Xem xét sử dụng các multiple build machines để nâng cao hiệu suất.

Projects

  • Tránh các phụ thuộc qua lại giữa các team project với nhau.
  • Sử dụng các project references thay vì các file references.
  • Sử dụng Web Deployment Project cho các Web applications.
  • Sử dụng một single-solution strategy nếu bạn đang làm việc trên một team project nhỏ.
  • Sử dụng một partitioned-solution strategy nếu bạn đang làm việc trên một team project lớn với nhiều project con độc lập nhau.
  • Sử dụng một multiple-solution strategy nếu bạn đang làm việc trên một team project rất lớn mà yêu cầu đến hàng chục project con độc lập nhau.

Scheduled Builds

  • Sử dụng một scheduled build để tạo các regular builds.

Test-Driven Development

  • Run code analysis trên từng build.
  • Run automated tests trên từng build.
  • Xem xét gán các build thành fail khi các automated test bị fail.

Work Items

  • Sử dụng các work items để theo dõi các build breaks.

 

Strategy

•  Sử dụng một scheduled build để tạo các regular builds.

•  Sử dụng CI build để lấy nhanh chóng các feedback trên các check-in.

•  Sử dụng một rolling build nếu các CI build có tác động xấu đến năng suất của server.

•  Sử dụng branching để giảm thiểu các build breaks.

•  Sử dụng các check-in policy để cải thiện chất lượng check-in quality.

•  Sử dụng build notification alerts để tìm hiểu khi nào các build được hoàn thành.

Sử dụng một scheduled build để tạo các regular builds

Sử dụng một scheduled build để tạo ra các builds một cách thường xuyên, dự báo các khoảng cách.

Nhìn chung, các build cung cấp cho test team của bạn và những nhóm khác để tin cậy và nên thực hiện sẵn tại một mức thời gian cố định, để các feedback trên các build có thể được thu thập một cách kịp thời.

The Team Build feature in Microsoft® Visual Studio® 2005 Team Foundation Server (TFS) không support các scheduled build từ giao diện người dùng(user interface). Thay vào đó, bạn có thể sử dụng Microsoft Windows® Task Scheduler để chạy TFSBuild command-line utility để bắt đầu các build tại một thời điểm xác định trước.

Để tạo một scheduled build  

1.  Tạo một TFSBuild command line như sau: 

TfsBuild start <<TeamFoundationServer>> <<TeamProject>> <<BuildTypeName>>

 2.  Đặt các command line trong một batch file.

3.  Tạo một Windows Scheduled Task để chạy các batch file tại khoảng thời gian mong muốn của bạn.

Tài nguyên bổ sung

  • Để có thêm thông tin về thiết lập các scheduled build với Team Build, hãy xem"Chương 9: Cài đặt một Scheduled Build với Team Build" trong tài liệu này.
  • Để có thêm thông tin về thiết lập các scheduled build với TFS, hãy xem "Làm thế nào - Cài đặt một Scheduled Build trong Visual Studio Team Foundation Server" trong tài liệu này.

Sử dụng CI build để lấy nhanh chóng các feedback trên các check-in

Bạn nên sử dụng các CI build để cung cấp cho nhóm phát triển của bạn các feedback nhanh về bất kì sự thay đổi breaking change nào và về chất lượng của các build sau mỗi check-in. Điều này giúp cho các nhóm phát triển sữa chữa các vấn đề build một cách nhanh chóng và có thể được sử dụng như là một tool để cải thiện chất lượng code của bạn.

Mặc dù Team Foundation Server 2005 không cung cấp một CI solution out of box, nó đã cung cấp framework cho bạn để thực thi CI build solution của riêng bạn.

Để có thêm thông tin về thiết lập một CI build với TFS, hãy xem "How To - Set Up a Continuous Integration Build in Visual Studio Team Foundation Server." Đề tài How To article này sử dụng the solution được cung cấp bởi the Microsoft Visual Studio Team System (VSTS) development team. The solution sẽ cài đặt một Web service chạy bên dưới một account that đã truy cập đến TFS server. Team Foundation Server có thể send một e-mail message hay call một Web service khi các  event cụ thể xảy ra. Cơ chế event này được sử dụng bởi CI solution để đăng kí một Web service với CheckinEvent event, để bất cứ khi nào một check-in xảy ra, the Web service khởi động một Team Build.

Tài nguyên bổ sung

Sử dụng một rolling build nếu các CI build có tác động xấu đến hiệu suất của server.

Build ngay lập tức ngay sau khi mọi check-in là chiến thuật CI đơn giản nhất và nhìn chung cung cấp cho bạn hầu hết các feedback nhanh chóng. Tuy nhiên, nếu các check-in xảy ra một cách nhanh chóng đủ để làm quá tải build server của bạn, thì bạn nên sử dụng một phương pháp rolling build  nơi bạn build sau một số lần các check-in cụ thể hay sau một số giai đoạn thời gian. Để quyết định nếu bạn cần sử dụng một rolling build, thì hãy xác định những điều sau:

  • Độ dài của Team Build của bạn theo phút
  • Tần số trung bình của các check-in theo phút.
  • Time window trong suốt các check-in thường xuyên xảy ra

Nếu chiều dài build dài hơn tần số trung bình của các check-in, các build của bạn sẽ chạy liên tục bởi vì build đầu tiên sẽ hoàn thành trước khi check-in tiếp theo xảy ra, là check-in sẽ bắt đầu một build khác. Nếu các check-in tiếp tục xảy ra trước mỗi build được hoàn thành, điều này ảnh hưởng đến hiệu suất của build server và sẽ block các build khác (như là các scheduled build) đang được bắt đầu. Xem lại cửa sổ thời gian time window trong suốt quá trình xảy ra các check-in một cách thường xuyên và xác định nếu các CI build sẽ ảnh hưởng đến sự phân phối của các scheduled build hay các Team Builds quan trọng khác.

Tài nguyên bổ sung

  • Để có thêm thông tin, hãy xem "Chương 8 - Thiết lập một Continuous Integration Build với Team Build" trong tài liệu này.

Sử dụng branching để giảm thiểu các build breaks

Để giúp tránh các build break, bạn nên sử dụng một Development branch cho các hoạt động phát triển và một Main branch cho integration build của bạn.

Sau đây là một thí dụ về cấu trúc branch phải ra sao sau khi bạn tạo một Development branch:

  • Development - Development Branch

Source

  • Main - Integration Branch

o  Source

Other Assets folders

Hãy nhớ đến những lời đề nghị sau khi bạn làm việc với một nhánh release branch:

  • Khi branch. Nếu bạn đang tạo các daily build và đang có vấn đề với build stabilization và integration, bạn nên tạo cả một main và một development branch để đảm bảo là các daily build của bạn lớn hơn so với dự đoán. Bạn cũng có thể muốn xem xét kĩ lưỡng nhiều hơn các chính sách về check-in policy để cải thiện chất lượng của các check-in.
  • Khi không branch. Nếu bạn chỉ tạo các CI build, hay các daily build của bạn được dự đoán đã ổn định, bạn không cần phải thêm chi phí của các integration branch.
  • Permissions trên branch:

o  The Main branch permissions nên được read/write cho các nhà phát triển chịu trách nhiệm về merging và integration, nhưng read-only cho tất cả mọi người khác. 

o  The Dev branch permissions nên là read/write cho everyone.

  • Build frequency trong branch:

o  Daily builds trên Main branch.

o  CI builds trên Dev branch.

  • Testing focus on branch:

o  Thực hiện kiểm thử tích hợp, hiệu suất và bảo mật(integration, performance, và security testing) trên Main branch.  

o  Thực thi các kiểm thử chức năng và phản hồi nhanh(feature and quick feedback testing) trên Dev branch.

Sử dụng Main branch như là một staging area cho việc tích hợp các thay đổi(integrating change) mà cần được kiểm tra trong development branch. Thực hiện tất cả các hoạt động phát triển(active development) trong Dev branch, và tích hợp các non-breaking changes trong  Main branch.

Tài nguyên bổ sung

 

Sử dụng các check-in policy để cải thiện chất lượng check-in quality

Bạn nên sử dụng một sự kết hợp code analysis policy với các testing policy để cải thiện chất lượng check-in quality. Thí dụ, sử dụng các chính sách testing policy được cung cấp để đảm bảo là các test cụ thể được thực thi và  được thông qua trước khi cho phép source được kiểm tra trong TFS source control. Bạn cũng có thể cấu hình một chính sách code analysis policy để giúp đảm bảo là code của bạn đáp ứng một số tiêu chuẩn chất lượng bằng cách đảm bảo các quy tắc về security, performance, portability, maintainability, và reliability rules được thông qua.

Bằng cách thi hành các loại chính sách check-in policy này, thêm vào các policy mà thi hành các chuẩn code và hướng dẫn, bạn có thể test phần code của bạn dựa vào các vấn đề chất lượng code cụ thể.

Để thi hành một code analysis check-in policy cho một team project, bạn click phải lên team project của bạn trong Team Explorer, trỏ đến Team Project Settings, và sau đó click vào Source Control. Click vào tab Check-in Policy , click Add, và sau đó chọn và cấu hình chính sách phù hợp.

Tài nguyên bổ sung

Sử dụng build notification alerts để tìm hiểu khi nào các build được hoàn thành 

Để theo dõi build process của bạn, bạn có thể tạo các alert mà gửi e-mail messages đến cho bạn hay các người khác khi một build được hoàn thành.

Điều này quan trọng vì nó cung cấp xoay vòng nhanh chóng giữa các nhóm. Thí dụ, nếu test team được thông báo qua e-mail của một build đã hoàn thành, chúng có thể khởi động test pass của chúng  mà không phải đợi các hướng dẫn sử dụng.

Tài nguyên bổ sung

 

 

Branching

•  Sử dụng các Team Build Types mới khi tạo một partial branch. 

•  Chỉnh sửa các path để giải quyết trong TFSBuild.proj files, khi tạo một complete branch.

Sử dụng các Team Build Types mới khi tạo một partial branch

Khi bạn tạo một branch mà chứa một tập con các solution trong team project của bạn, bạn cần phải tạo mới các build type để build thành công.

Có hai loại partial branches:

1.  Một partial branch không bao gồm  branching của bất cứ loại build type nào. Điều này sẽ xảy ra trong một team project, và sẽ là branch solution và các source file đơn giản nhưng sẽ không branch bất kì TeamBuildTypes folder nào trong các folder mới.  

2.  Một partial branch bao gồm branching của các loại build type. This Điều này sẽ xảy ra trong một team project, và sẽ branch một số  subfolders của TeamBuildTypes (tức là, các loại build type) ngoài ra để các folders chứa các solution và source file liên quan nhau.

Nếu bạn tạo một partial branch mà không bao gồm Team Build Types tất cả của các Team Build đã có sẽ tiếp tục làm việc, nhưng bạn sẽ càn tạo mới Team Build Type nếu bạn muốn build branch. Tạo mới các build types bằng cách sử dụng Team Build Wizard để build code trong các branch mới.  Những loại build type mới này sẽ trỏ đến branch location cũng có thể trỏ đến parent location cho bất kì solution nào mà phải được bao gồm trong build nhưng không được branch.

Nếu bạn tạo một partial branch gồm có các Team Build Types, các build type mà được copy qua branch sẽ chỉ đến các original, parent branch locations và vì thế mà sẽ không cho phép bạn build branch mới. Chỉnh sửa các branched build types để chúng chỉ đến các branched code location mới.

Tài nguyên bổ sung

Chỉnh sửa các path để giải quyết trong TFSBuild.proj files, khi tạo một complete branch

Khi bạn tạo mới một branch, gồm có các Team Build Types, các đường dẫn path trong các build types vẫn còn trỏ đến các location trước. Để cho các build làm việc trên branch mới, bạn phải update các path trong các build type project file để chúng reference đến các path location mới tạo sau khi branch hoạt động.

Khi bạn tạo một full branch, bạn cũng branch các build type. Các build types chứa các reference đến các folder từ các original source control tree. Để có những build type này refer đến các branch folders, bạn phải edit các folder references ở trong những file này.

Để thực thi update, check out các build type từ các branch mà bạn muốn chỉnh sửa modify, áp dụng các update, và sau đó commit các thay đổi đến các branch.

Tài nguyên bổ sung

 

Check-in Policies

•  Sử dụng các check-in policies để nâng cao check-in quality.

•  Sử dụng check-in policies để liên kết các work items với việc build.

Sử dụng các check-in policies để nâng cao check-in quality

Sử dụng sự liên kết giữa các chính sách phân tích và kiểm thử code(code analysis and testing policies) để nâng cao chất lượng của các check-in(check-in quality). Thí dụ, sử dụng các chính sách kiểm thử được cung cấp(supplied testing policy) để đảm bảo là các specific test được thực hiện và thông qua trước khi cho phép các source được kiểm tra ở trong TFS source control. Bạn cũng có thể cấu hình một code analysis policy để giúp đảm bảo là code của bạn đáp ứng được tiêu chuẩn chất lượng nhất định bằng việc đảm bảo về khía cạnh security(bảo mật), performance(hiệu suất), portability(tính linh động), maintainability(bảo trì), và các nguyên tắc tin cậy(reliability rules) được thông qua.

Bằng các sử dụng loại check-in policy này thêm vào các policy mà được  thi hành các tiêu chuẩn và hướng dẫn code, bạn có thể test phần code của bạn dựa trên các vấn đề chất lượng code cụ thể(specific code quality issues).

Tài nguyên bổ sung

  • Để có thêm thông tin về việc tạo và sử dụng một custom check-in policy, hãy xem "How To: Step Through Creating Custom Check-in Policies for TFS" trong tài liệu này.
  • Để tìm hiểu làm cách nào để tùy chỉnh một check-in policy, hãy xem "Walkthrough: Customizing Check-in Policies and Notes" tại http://msdn2.microsoft.com/en-us/library/ms181281(VS.80).aspx
  • Để xem các phần code đơn giản mà sẽ disallow các selected patterns trong check-in, hãy xem "Check-in Policy to Disallow Certain Patterns" tại http://blogs.msdn.com/jmanning/archive/2006/02/02/523125.aspx

 •  Để xem các phần code đơn giản mà sẽ enforce các comment trên check-in, hãy xem "Sample Check-in Policy: Make Sure the Comment Isn't Empty" tại http://blogs.msdn.com/jmanning/archive/2006/01/21/515858.aspx   

Sử dụng check-in policies để liên kết các work items với việc build

Thiết lập các Work Items check-in policy để buộc các lập trình viên phải liên kết các check-in của họ với một work item.  

Nếu một build bị break, điều quan trọng là bạn phải biết được tập các thay đổi(change set) nào liên quan đến build này và các work item nào liên quan đến tập các thay đổi(change set) đó. Bằng sự hiểu biết này, bạn có thể xác định được lập trình viên nào chịu trách nhiệm kiểm tra trong phần code bị thay đổi và area của dự án mà anh ta hay cô ta đang làm việc.

Đối với một build được liên kết với một tập các work item đã hoàn thành, mỗi check-in phải được liên kết với một work item. Những check-in này được tiêu biểu như các change set liên kết với một build, và có thể theo dõi từ build đến change set đến work item.

Tài nguyên bổ sung

  • Để có thêm thông tin về việc tạo và sử dụng một custom check-in policy, see "How To: Step Through Creating Custom Check-in Policies for TFS" trong tài liệu này.
  • Để tìm hiểu làm thế nào để tùy chỉnh một check-in policy, see "Walkthrough: Customizing check-in Policies and Notes" tại

 http://msdn2.microsoft.com/en-us/library/ms181281(VS.80).aspx   

Continuous Integration Builds

•  Sử dụng một CI build để lấy các feedback nhanh chóng trên các check-ins.

•  Sử dụng một rolling build nếu các CI build có ảnh hưởng không tốt đến hiệu suất của build server performance.

•  Đảm bảo là tần số(frequency) của các rolling build của bạn thường nhỏ hơn số build times.

Sử dụng một CI build để lấy các feedback nhanh chóng trên các check-ins

Bạn nên sử dụng các Continuous Integration builds để cung cấp cho development team của bạn các rapid feedback trên bất kì breaking change nào và chất lượng của build sau mỗi check-in. Điều này giúp các development team sữa các vấn đề thiết kế(build issues) một cách kịp thời và có thể được sử dụng như một công cụ tool để cải thiện chất lượng code của bạn.

Mặc dù Visual Studio 2005 Team Foundation Server không cung cấp một CI solution out of the box, nó đã cung cấp framework cho bạn để thực thi CI build solution của bạn.

Để có thêm thông tin về cài đặt một CI build với TFS, hãy xem "How To: Set Up a Continuous Integration Build in Visual Studio Team Foundation Server." Đề tài How To article sử dụng solution được cung cấp bởi VSTS development team. The solution install một Web service mà chạy bên dưới một account mà account đó đã truy cập đến TFS server. Team Foundation Server có thể send một e-mail message hay gọi một Web service khi các event cụ thể xảy ra. Cơ chế event này được sử dụng bởi CI solution để đăng kí một Web service với CheckinEvent event, để bất cứ khi nào một check-in xảy ra, Web service khởi động một Team Build.

Tài nguyên bổ sung

Sử dụng một rolling build nếu các CI build có ảnh hưởng không tốt đến hiệu suất của build server performance

Building ngay sau khi tất cả các check-in xảy ra là chiến lược CI đơn giản nhất và thường sẽ cho bạn hầu hết các feedback nhanh. Tuy nhiên, nếu các check-in xảy ra một cách nhanh chóng đủ để làm tràn build server của bạn, bạn nên sử dụng một phương pháp rolling build ở nơi bạn build sau khi một số các check-in cụ thể hay sau một giai đoạn thời gian cụ thể. Để quyết định nếu bạn cần sử dụng một rolling build, hãy xác định các điều sau:

  • Chiều dài của Team Build được tính bằng phút.
  • Tần số trung bình của các check-in được tính bằng phút.
  • Time window during which frequent check-ins occur

 

Nếu độ dài của các build lâu hơn tần số trung bình của các check-in, các build của bạn sẽ chạy liên tục bởi vì build đầu tiên sẽ không hoàn thành trước khi check-in tiếp theo xảy ra, sẽ khởi động build khác. Nếu các check-in tiếp tục xảy ra trước mỗi build hoàn thành, nó sẽ ảnh hưởng đến hiệu suất của build server của bạn và sẽ trì hoãn các build khác, như là các scheduled builds. Xem lại time window trong suốt thời gian các check-in xảy ra và xác định nếu các CI build ảnh hưởng đến sự phân phối của các scheduled build hay các Team Build quan trọng khác.

Tài nguyên bổ sung

  • Để có thêm thông tin về cài đặt các CI build, hãy xem "Chapter 8 - Setting Up an Continuous Integration Build with Team Build" trong tài liệu này.

Hãy chắc là tần số của các Rolling Build của bạn nhỏ hơn số lần Build Times

Xác định khoảng thời gian rolling build để đảm bảo cho một quy trình build process hiệu quả thì quan trọng. Nếu tần số của các rolling build nhỏ hơn thời gian để hoàn thành một build, nó đảm bảo là build machine của bạn sẽ sẵn sàng cho các build type khác ở giữa các khoảng thời gian rolling build của bạn.

 

Để xác định khoảng thời gian rolling build lý tưởng, hãy chia tần số trung bình của các check-in theo độ dài của build của bạn. Ví dụ, nếu bạn có một build mà mất 10 phút và bạn trung bình một check-in là 5 phút, bạn có thể gán một khoảng thời gian check-in của hai check-in và một khoảng thời gian chờ là 10 phút. Điều này đảm bảo là các build sẽ được hoàn thành trước khi build kế tiếp được kích hoạt. Nếu bạn nhận thấy là có việc load quá tải trên build server của bạn, bạn có thể tăng các giá trị này.

Tài nguyên bổ sung

  • Để có thêm thông tin về các CI build, hãy xem "Chapter 8 - Setting Up a Continuous Integration Build with Team Build" trong tài liệu này.

 

Recent Comments

Leave the first comment for this page.