2011-12-06 26 views
6

Tôi có một trang web ASP.NET MVC 3 trong C# vớiCách dễ nhất để thực hiện triển khai hàng đêm của ASP.NET MVC 3 Website?

  • ASP.NET MVC 3 Internet Project
  • Dự án miền (Class Library)
  • Đơn vị kiểm tra Dự án
  • SQL Server 2008 R2 Cơ sở dữ liệu
  • Kiểm soát nguồn trên Mercurial

Cách dễ nhất để thực hiện một đêm tự động là 12:00 AM triển khai thứ hai của trang web để mỗi ngày tôi có thể đi đến dev.mycompany.com và sẽ thấy một phiên bản cập nhật trực tiếp của phiên bản Dev của tôi?

Tôi đã nghĩ đến việc sử dụng Jenkins để làm tất cả công trình.

Trả lời

12

Tôi giúp duy trì một hệ thống giống như thế này - trong Jenkins. Rõ ràng các chi tiết sẽ thay đổi dựa trên cấu trúc dự án của bạn, nhưng đây là khoảng những gì công việc Jenkins của chúng tôi thực hiện:

  • đang Kéo (chúng tôi sử dụng Git nhưng có một plugin Mercurial cho Jenkins cũng)
  • Execute bất kỳ thay đổi schema SQL chống lại thử nghiệm của chúng tôi DBS từ một kịch bản idempotent (chúng tôi sử dụng một kịch bản Ant mà trước ngày chúng tôi sử dụng Hudson/Jenkins)
  • Run msbuild (một plugin Jenkins)
    • tập xây dựng là sln của chúng tôi (hoặc bạn có thể sử dụng một trang web .csproj - các đối số hơi khác nhau)
    • Đối số dòng lệnh:
      • /p: Cấu hình = Dev/p: Nền tảng = "Bất kỳ CPU"/p: DeployOnBuild = true/p: DeployTarget = Gói /p:DeployIisAppPath="dev.mycompany.com/ "/ v: m
    • này xây dựng một tập tin .zip, một file cmd, và một số file .xml, có chứa tất cả mọi thứ bạn cần để triển khai bản cập nhật cho trang web của bạn
  • kick off hai khác "msdeploy "Công việc Jenkins, một trên mỗi máy chủ web .NET
    • Mỗi máy chủ web .NET cũng là một Jenkins slave
    • Chúng tôi có hai máy chủ trong thử nghiệm, được cân bằng qua NLB
    • Mỗi công việc "msdeploy" sao chép tệp .zip/.cmd/.xml từ máy chủ xây dựng sang vị trí tạm thời trên máy chủ web rồi chạy. tập tin cmd
    • Các tập tin .cmd thực hiện msdeploy, mà đẩy mọi thứ bạn cần ra máy chủ web dev của bạn

Chúng tôi có một công việc riêng biệt mà chạy thử nghiệm NUnit của chúng tôi, nhưng bạn có thể cũng giống như dễ dàng kết hợp kiểm tra của bạn vào công việc chính của bạn. Một trong những lý do chúng tôi xây dựng toàn bộ .sln thay vì web .csproj là vì vậy chúng tôi có thể chạy các bài kiểm tra đơn vị của chúng tôi từ cùng một mã được xây dựng.

Nếu bạn chưa có, bạn sẽ cần phải cài đặt ASP.NET MVC3, .NET 4 và msdeploy trên máy chủ xây dựng và tôi tin rằng bạn sẽ cần hầu hết các tệp tương tự trên máy chủ web của mình .

Để lên lịch, bạn có thể chọn "xây dựng định kỳ" hoặc "thăm dò ý kiến ​​SCM" làm trình kích hoạt xây dựng của bạn, sau đó sử dụng cú pháp giống như cron (0 0 * * *) để chạy hàng ngày vào lúc nửa đêm.

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