9

Tôi đang tìm một số đề xuất để tự động xây dựng và triển khai dự án.Quy trình tự động hóa và triển khai xây dựng tốt để sử dụng với asp.net là gì?

Thiết lập phát triển hiện tại của chúng tôi sử dụng ASP.NET, SVN, CCNET và tập lệnh MSBuild cho xây dựng máy chủ dev. Tôi đã nghĩ đến việc chuyển sang Cruise thay vì CCNET mặc dù tôi không chắc liệu điều đó mang lại cho tôi thêm điều gì mà tôi chưa có.

Điều tôi muốn tự động hóa là quy trình từ sau khi xây dựng tự động được thực hiện để cập nhật trang web trực tiếp với những thay đổi mới. Cập nhật trang web có thể bao gồm các cập nhật trang cơ sở cũng như các bản cập nhật của khách hàng có thể là mã và/hoặc thay đổi cơ sở dữ liệu để quá trình này cần đủ linh hoạt để có thể xử lý các tình huống đó.

Một trong những nguồn cảm hứng cho điều này là từ this video cũng như số giờ vô tận dành cho việc cập nhật mỗi tháng.

+0

Chỉ cần cập nhật sau 6 năm; [Các công cụ tự động phát hành ứng dụng] (https://en.wikipedia.org/wiki/Application_release_automation) được thiết kế đặc biệt cho chính xác điều này. BuildMaster là một trong những công cụ hiện có và [hướng dẫn này] (http://inedo.com/support/tutorials/building-and-deploying-a-net-web-application-using-buildmaster) vạch ra quá trình được đề cập. –

Trả lời

4

Đối với dự án nhỏ hơn hoặc cá nhân, tôi khuyên bạn nên sử dụng một cái gì đó giống như miễn phí (và xuất sắc) TeamCity bởi JetBrains. Tự động kiểm tra đơn vị, tích hợp liên tục và các quy tắc cho những gì xảy ra sau khi xây dựng (bao gồm di chuyển nó đến các vị trí khác nhau).

Đối với đội lớn hơn, tôi thực sự đã tìm thấy một chút tự động hóa bản dựng ở dạng tác vụ MSBuild tùy chỉnh và RoboCopy hoạt động tốt nhất. Sự kết hợp tốt đẹp giữa việc quảng bá xây dựng giữa các môi trường bằng tay và sử dụng MSBuild & RoboCopy để tự động hóa các phần của quá trình này tạo ra sự ngắt quãng rõ ràng giữa các môi trường (với rất ít 'oops tôi không có ý định đẩy' có lỗi '). Nó cũng cho phép chúng tôi xây dựng đánh giá QA trước khi quảng cáo.

Cập nhật 2014/07/31:

Tôi đã sử dụng custom TFS build templates với thành công. Chúng hơi phức tạp một chút, nhưng bạn có thể làm khá nhiều điều thú vị với chúng.

Đối với các dự án nguồn mở (như thư viện NuGet) được lưu trữ trên GitHub, tôi không nghĩ rằng bạn có thể đánh bại AppVeyor. Tôi đã có một vài dự án như Mailchimp.NET có đầy đủ xây dựng và NuGet triển khai tự động hóa.

+1

Tôi đã nâng cấp, cuối cùng, từ CruiseControl.NET đến TeamCity và yêu thích nó. Điều này đã được dễ dàng hơn nhiều để sử dụng ngay cả với các kịch bản MSBuild tùy chỉnh. –

0

Tôi đã sử dụng Nant trong quá khứ với rất nhiều may mắn cho các tác vụ tương tự. Bạn có thể khởi động bằng cách sử dụng bản dựng tự động của mình. (http://nant.sourceforge.net/)

Nếu bạn muốn một cái gì đó toàn diện hơn, bạn có thể kiểm tra wix (http://wix.sourceforge.net/)

Bây giờ là bạn thực sự chắc chắn rằng tất cả mọi thứ một build autmatic đá tắt bạn muốn cập nhật các trang web hoạt động? Hoặc bạn có nghĩa là bạn khởi động một bản dựng, sử dụng công cụ cc của bạn, và sau đó nó tạo ra một bản dựng để phát trực tiếp?

Tôi ghét phải cập nhật trang web trực tiếp khi ai đó đã đăng ký phiên bản tệp mới.

Cập nhật cơ sở dữ liệu của bạn có thể sẽ là khía cạnh khó khăn nhất. Tuy nhiên miễn là những gì được kiểm tra trong bản cập nhật databvase là một kịch bản thay đổi, nó không phải là xấu.

+0

Hiện có 2 loại bản dựng. Một là xây dựng dev và bản phát hành còn lại. Các bản dựng của Dev được chạy mỗi xx phút sau khi kiểm tra mã và chạy các kiểm tra đơn vị, trong khi bản phát hành chỉ khi chúng tôi khởi chạy và thực hiện hầu hết những gì mà công cụ xây dựng thực hiện nhưng ở chế độ phát hành cũng như gắn thẻ nó dưới dạng phiên bản SVN. –

0

Có vẻ như hai chức năng chính để triển khai các thay đổi mã của bạn là: 1. Sao chép tệp và 2. Thực thi các thay đổi của Tập lệnh DB. Nếu bạn xem xét sử dụng MsBuild Community Tasks, có rất nhiều công việc xây dựng tiện dụng có thể giúp bạn trong quá trình thực hiện. SqlExecute và RoboCopy âm thanh như họ sẽ là tất cả các bạn sẽ cần phải sử dụng. Điều này sẽ yêu cầu bạn sửa đổi các tập tin dự án của bạn để mở rộng hành vi xây dựng của họ, nhưng một khi điều đó được thực hiện, bạn sẽ có thể "kịch bản" ra phần hướng dẫn của những gì đang được thực hiện.

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