2009-08-26 44 views
11

Chúng tôi có một số dự án trong CruiseControl và tôi nhận thấy rằng thường có từ 2 dự án trở lên được xây dựng cùng một lúc. Điều này dường như đang gây xung đột. Thông thường, một bản dựng không thành công và nếu tôi nhìn vào lý do, nó không truy cập được một số tệp và nếu tôi chờ cho đến khi bản dựng khác hoàn tất, tôi có thể xây dựng bản dựng không thành công và sẽ thành công.Làm cách nào để ngăn chặn các bản dựng đồng thời trong CruiseControl.NET?

Làm cách nào tôi có thể định cấu hình CC để không chạy đồng thời các bản dựng nếu chúng xung đột với nhau?

Trả lời

10

Bạn phải thực hiện tất cả các bản dựng phụ thuộc vào nhau, trong một hàng đợi.

Việc kiểm soát hành trình yếu tố cấu hình dự án có hai thuộc tính để kiểm soát đồng thời, trình tự xây dựng:

<project name="Project 1" queue="Q1" queuePriority="1"> 

Với queue bạn có thể xác định, trong đó xếp hàng dự án sẽ được xây dựng, với queuePriority bạn có thể xác định thứ tự của xây dựng khi một số bản dựng được yêu cầu.

Vì vậy, hai dự án không thể xây dựng song song phải nằm trên cùng một hàng đợi, giả sử queue="Q1". Khi dự án thứ hai phụ thuộc vào dự án thứ nhất, dự án thứ hai phải có mức độ ưu tiên cao hơn dự án thứ nhất.

+0

Điều này ngăn cản bạn từ việc xây dựng một dự án 1 mà không cần xây dựng Dự án 2? Hoặc cả hai sẽ luôn luôn được xây dựng bởi vì họ đang ở trong cùng một hàng đợi? –

+0

Không, điều đó sẽ được thực hiện với trình kích hoạt – JoelFan

7

Bạn có thể sử dụng tính năng Locking để xác định hàng đợi không nên chạy cùng một lúc.

này có sẵn trong phiên bản 1.4.3

Một mẫu từ các tài liệu:

<cruisecontrol> 
    <queue name="Q1" lockqueues="Q2"/> 
    <queue name="Q2" lockqueues="Q1"/> 

    <project name="MyFirstProject" queue="Q1" queuePriority="1"> 
    ... 
    </project> 
    ... 

    <project name="MySecondProject" queue="Q2" queuePriority="1"> 
    ... 
    </project> 
    ... 
</cruisecontrol> 
Các vấn đề liên quan