2009-08-29 32 views
17

Tôi đã suy nghĩ về CI và tự động xây dựng rất nhiều gần đây và quan tâm đến việc biết liệu có thực hành tốt nhất để thiết lập và duy trì môi trường tích hợp liên tục hay không. Bạn có giữ tất cả các tệp liên quan đến CI của bạn được đăng ký với nguồn dự án của bạn không? Làm thế nào bạn thường cấu trúc CI của bạn và xây dựng các tập tin? Mọi lời khuyên đều được chào đón!Tích hợp liên tục - Thực hành tốt nhất

+0

allot fo Những điều CI là nền tảng độc lập nhưng cách bạn cấu trúc CI và xây dựng các phần của câu hỏi có thể bị ảnh hưởng bởi nền tảng. Bạn có quan tâm để chia sẻ nền tảng của bạn là gì không? – olle

+0

Tôi đang sống trong môi trường .NET/Windows. Hiện tại chúng tôi đang sử dụng Cruise Control .NET, MSBuild và NAnt cho các bản dựng của chúng tôi. –

+0

Kiểm tra bài viết này: http://www.yegor256.com/2014/07/21/read-only-master-branch.html – yegor256

Trả lời

3

Nếu bạn chưa có, hãy xem sách Continuous Integration từ chuỗi Martin Fowler, bởi Duvall/Matyas/Glover. Nó bao gồm tất cả các câu hỏi bạn hỏi sâu với các ví dụ vững chắc.

2

Ngoài ra còn có hàng loạt thực dụng '"Pragmatic Project Automation".

Tất nhiên, tất cả các tệp cần thiết để xây dựng phải được đăng ký. CI khác sẽ nhận được gì ở họ?

Tôi đã sử dụng CI với Java, do đó có nghĩa là tệp build.xml của Ant và Kiểm soát hành trình, Thành phố nhóm hoặc Hudson. Có thể cho build.xml là chung chung nếu bạn gắn bó với một cấu trúc thư mục nhất quán cho các dự án của bạn.

+0

Đúng. Bạn sẽ cần phải cài đặt một số thứ trên máy chủ xây dựng của bạn, nhưng mục tiêu là có tất cả các tệp liên quan đến CI của bạn dưới sự kiểm soát nguồn (và để máy chủ CI kéo các tệp từ đó). Chúng tôi sử dụng TeamCity để phát triển C#. Nếu một build phức tạp, chúng ta sử dụng NAnt (có thể gọi MSBuild). – TrueWill

1

Nếu tập lệnh xây dựng của bạn bắt đầu trở nên lớn, bạn có thể tách nó ra và bao gồm các phần liên quan. Điều này giúp bảo trì và dễ đọc hơn.

Lời khuyên khác của tôi sẽ không giống như lập trình truyền thống - khi tạo kịch bản xây dựng, hãy sử dụng số lượng nhận xét tự do.

6
  1. Bắt đầu bằng một bước xây dựng. Nếu bạn không có, bạn không thể có bất kỳ CI hợp lý
  2. Nếu nó không có trong kiểm soát nguồn, nó không tồn tại
  3. Nếu thiết lập và duy trì CI vượt quá nỗ lực thiết lập nhà phát triển máy trạm thì bạn quá phụ thuộc vào IDE của bạn hoặc cấu trúc dự án của bạn quá phức tạp. Hãy xem đó là cơ hội tái cấu trúc.
  4. Bạn không cần bất kỳ điều gì ưa thích để thực hiện CI. Bạn thậm chí không cần phải biết những gì nó là để làm điều đó. Tôi đã viết về my earlier experience here, khi tôi thực hiện một CI ngây thơ trước khi tôi nghe thuật ngữ CI.
2

Kohsuke Kawaguchi, người sáng lập công cụ Jenkins/Hudson CI phổ biến, vừa xuất bản một giấy trắng mà bạn có thể thấy hữu ích. 7 Ways to Optimize Jenkins

Các vấn đề liên quan