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.
Nguồn
2012-02-23 04:55:01