2009-07-28 30 views
5

Tôi đã bị tính phí khi thiết lập máy chủ CI trong công ty của mình và tôi đang tìm một số tư vấn về cấu hình cần thiết cho dự án của mình. Là một bước đầu tiên tôi đã thiết lập được xây dựng như:Cấu hình tích hợp liên tục

Cam kết xây dựng: Biên dịch mã và chạy đơn vị kiểm tra
Integration tích xây dựng: Biên dịch mã và chạy dài chạy thử nghiệm hội nhập

Tôi không chắc chắn những gì khác tôi sẽ cần phải hoàn thành hình ảnh CI. Ví dụ: Bạn có cấu hình gì trong cửa hàng của mình?

Tôi biết phải có một bước để triển khai các bản dựng thành công của tôi, nhưng tôi có thể làm cho phần triển khai của Tích hợp không?

Sử dụng TeamCity, MSBsuild và SVN

Cần nhiều lời khuyên cần thiết.

Trả lời

2

Những thứ chúng tôi chạy trong một dự án trước đó trên mỗi lần chạy CI trong đó Bản ghi bảo hiểm mã, xuất bản tài liệu được tạo tự động và báo cáo Kiểm tra.

Điều này đã cho chúng tôi một số số liệu thống kê về chất lượng thống kê của mỗi lần kiểm tra để lập kế hoạch và cải thiện thói quen làm việc của chúng tôi.

1

Chúng tôi đã xây dựng cấu hình cho

  • biên dịch + Đơn vị kiểm tra + phân tích tĩnh (FindBugs trong trường hợp của chúng tôi) + mã số bảo hiểm (kích hoạt trên phạm)
  • kiểm tra tích hợp (kích hoạt trên một lịch trình miễn là có là một cam kết)
  • triển khai để kiểm tra (bằng tay kích hoạt)

cấu hình triển khai cho phép một nguồn lực QA phi kỹ thuật để triển khai đến các môi trường thử nghiệm bất cứ khi nào họ đã sẵn sàng để thử nghiệm điều gì đó và tránh nhầm lẫn về việc liệu một bản sửa lỗi đã đạt đến môi trường thử nghiệm chưa.

6

Công trình hoàn thiện nhất mà tôi từng thấy đã làm những điều sau theo thứ tự đã cho. Có hai nhóm, tất cả các mục tiêu trong mỗi nhóm được thực hiện bất kể thất bại, nhưng nhóm không thành công nếu một thành viên của nhóm không thành công. Vì vậy, chúng tôi thấy tất cả các vấn đề.

nhóm đầu tiên làm việc trên các nguồn:

  • thư mục làm việc sạch sẽ
  • cập nhật các nguồn tin mới nhất, có được tất cả mọi thứ từ SVN
  • biên dịch nguồn khác nhau, rmic, vv
  • nguồn valudate XML (như ít nhất trong Java có rất nhiều, như mô tả triển khai, bảng định kiểu, v.v.)
  • thực hiện phân tích mã tĩnh cho các nguồn, ví dụ: kiểm tra khoảng trống, quy ước đặt tên, tên tệp hoặc kiểm tra phức tạp hơn được thực hiện trên AST của nguồn (như PMD thực hiện điều đó cho Java).
  • kiểm tra quy ước đặt tên của các tệp khác, ví dụ: chúng tôi đã kiểm tra tên của tất cả các thư viện phụ thuộc để chứa số phiên bản.

nhóm thứ hai là làm việc trên các mã sản xuất, chỉ khi bước đầu tiên đã thành công:

  • chạy các đơn vị kiểm tra thử nghiệm
  • chạy hội nhập nhanh
  • làm phân tích mã tĩnh có sẵn cho các nguồn (hầu hết các công cụ cho Java làm theo cách này), ví dụ kiểm tra các mẫu lỗi điển hình (như Findbugs thực hiện đối với Java)
  • kiểm tra tham chiếu, ví dụ: thực thi lớp kiến ​​trúc, trợ cấp của việc sử dụng của các tầng lớp nhất định từ các lớp khác vv
  • tạo việc triển khai trọn gói

Đây là xây dựng chính được kích hoạt thời gian sau khi thời gian cho các cam kết. Nó đã làm rất nhiều, nhưng với một số máy mạnh mẽ sử dụng một số lõi nó đã được khoảng 4 phút cho 500k LOC. Người thử nghiệm có thể tải các bản dựng ảnh mới nhất nếu họ muốn.

thử nghiệm hội nhập dài chạy (2 giờ mỗi) sẽ chạy một lần mỗi đêm và chỉ làm

  • biên dịch
  • chạy thử nghiệm chạy dài

xây dựng khác là một đơn thuần documantion xây dựng, kích hoạt một lần mỗi đêm. Nó sẽ không bao giờ thất bại.

  • tạo tài liệu API
  • làm một phân tích mã tĩnh đầy đủ với tất cả các quy tắc và sản xuất một số loại chỉ số về chất lượng dự án tổng thể
  • báo cáo bảo hiểm sản phẩm (đó là một điều đáng tiếc chúng tôi không thực thi bảo hiểm phát triển) từ tất cả các dự án xây dựng trước
  • sản xuất tất cả các loại tài liệu ưa thích như trang web Maven hoặc Sonar report v.v. Điều này dành cho quản lý/QA hầu hết thời gian.
1

Chúng tôi đã có một cuộc trò chuyện tương tự tại gần đây nhất CITCON Bắc Mỹ (Tích hợp liên tục và hội nghị kiểm tra) nơi mà tất cả chúng ta chia sẻ kinh nghiệm của chúng tôi và cố gắng để đặt cùng một lộ trình từ CI đơn giản đến rất xây dựng ra CI và phát hành hệ thống .

Ghi chú hội nghị ban đầu là here. Cùng với Flickr photostream. A cleaned up version cũng có sẵn tại blog urbancode.

Các Úc revisited chủ đề tại CITCON Brisbane và một pencast đó có sẵn

Hope một số những nguồn lực là hữu ích.

1

Hiện tại tôi đang làm việc. xây dựng cấu hình của chúng tôi thực hiện những điều sau đây:

tích xây dựng:

  • Compile.
  • Kiểm tra.
  • Merge giá trị cấu hình cụ thể môi trường khác nhau với một cấu hình cơ sở (điều này lá chúng tôi với Staging.config, Test.config vv)
  • Tạo một tập tin gọi version.txt rằng danh sách xây dựng lần, số phiên bản, vv
  • Xuất bản tất cả điều này vào một thư mục sạch sẽ. Đó là sau đó chọn như là một tạo tác xây dựng bởi teamcity.

Bây giờ chúng ta có một ứng dụng có thể được công bố với bất kỳ máy chủ chỉ đơn giản bằng cách sao chép nó vào thư mục triển khai, và đổi tên các tập tin cấu hình thích hợp để web.config

Sau đó chúng tôi có thêm 3 cấu hình để triển khai. Việc đầu tiên được triển khai vào một môi trường phát triển sau mỗi lần xây dựng thành công. Điều này cho chúng ta một phiên bản làm việc của codebase mới nhất mọi lúc. Thứ hai được triển khai để dàn dựng theo cách thủ công. Điều này được thiết lập để triển khai từ lần xây dựng phát triển được ghim cuối cùng. Cuối cùng, có một cấu hình triển khai trực tiếp sau đó triển khai từ lần xây dựng dàn dựng cuối cùng được triển khai. Đây làm một số điều bổ sung:

  • Tag phiên bản phát hành
  • Tạo một kho lưu trữ của nó một nơi nó trong một thư mục cho tiết kiệm giữ
  • Đi qua tất cả các bình luận checkin kể từ khi xây dựng sống cuối cùng và chiết xuất những người có số vé. Sau đó, sử dụng tiêu đề của vé để tạo danh sách thay đổi sơ bộ. Điều này được chỉnh sửa bởi PM trước khi được lưu cho hậu thế.
Các vấn đề liên quan