2016-02-16 19 views
6

Từ quan sát của tôi xung quanh cách TeamCity hoạt động, tôi nhận thấy rằng điều kiện xây dựng thất bại được đánh giá sau khi tất cả các bước được thực hiện thực hiện. Điều này là khá khó chịu vì tôi không thể có một bước mà sẽ không thực hiện nếu bất kỳ điều kiện xây dựng thất bại đã đáp ứng.TeamCity bước cần phải được bỏ qua trên điều kiện xây dựng thất bại

Tôi không đề cập đến các điều kiện hỏng xây dựng chung, chẳng hạn như "ít nhất một thử nghiệm không thành công". Tôi đang đề cập đến các điều kiện lỗi được thêm theo cách thủ công, chẳng hạn như thay đổi số liệu.

Khi tôi kiểm tra nhật ký xây dựng, tôi thấy rõ rằng tất cả các bước được thực thi và chỉ cuối cùng nó đánh giá điều kiện lỗi xây dựng và ghi nhật ký các lỗi tương ứng nếu có. Nhưng quá muộn trong quá trình này là bước điều kiện (mà phải thất bại dựa trên "Chỉ thi hành nếu trạng thái xây dựng thành công") đã được thực thi.

Câu hỏi: làm thế nào tôi có thể đạt được điều này?

Như bạn thấy từ trên, tôi đã cố gắng có một bước điều kiện và thêm điều kiện lỗi xây dựng, nhưng không thể đạt được kết quả mong muốn.

Addition cho rõ ràng:

Về cơ bản, tôi có một bước mà triển khai ứng dụng. Tuy nhiên, kỳ vọng của tôi là tôi không nên triển khai nếu các điều kiện lỗi xây dựng được đáp ứng. Ví dụ về điều kiện lỗi xây dựng mà tôi có là thay đổi số liệu. Rõ ràng, điều này tôi có thể thể hiện là tình trạng lỗi xây dựng, và tôi có thể có bước xây dựng không thành công trong trường hợp tình trạng xây dựng không thành công. Tuy nhiên, có vẻ như đó không phải là bước xây dựng sẽ hành xử như thế nào, vì vậy tôi rất bối rối (tôi nghĩ đó là mục đích của điều kiện trên bước xây dựng). Tôi đang thiếu gì?

Trả lời

0

Đó là do các điều kiện lỗi xây dựng được kiểm tra khi tất cả các bước xây dựng hoàn tất. Và điều đó có ý nghĩa, bởi vì đối với điều kiện như thay đổi chỉ số, bạn phải đợi quá trình xây dựng hoàn thành, nghĩa là bạn không thể xem xét tính toán kích thước hiện vật hoặc tìm kiếm văn bản cụ thể trong nhật ký hoặc tương tự cho đến khi quá trình xây dựng hoàn tất.

Điều đó nói rằng - đối với trường hợp của bạn, bạn nên xem xét viết các bước xây dựng thoát với mã thoát không có lỗi và sau đó bạn có thể sử dụng tùy chọn If all previous steps finished successfully trong Execute step của build step.

+0

Vì vậy, bạn đang đề xuất rằng bước với các bài kiểm tra đơn vị nên thoát với mã khác 0 trong trường hợp các điều kiện lỗi xây dựng được đáp ứng? nhưng làm thế nào tôi có thể nói bước để trả về mã không khác dựa trên các điều kiện lỗi xây dựng? – Tengiz

+0

Không phải trên cơ sở các điều kiện lỗi xây dựng - nếu bạn đang chạy thử nghiệm đơn vị và thử nghiệm đơn vị không thành công, bước chạy thử nghiệm đơn vị sẽ trả lại mã thoát không. Có thể có thêm một chút thông tin về cách bạn chạy thử nghiệm đơn vị sẽ hữu ích. Ví dụ, nếu bạn sử dụng trình cắm thêm NUnit teamcity để chạy các bài kiểm tra Nunit, nó sẽ thoát ra với một mã thoát khác 0 nếu một bài kiểm tra không thành công –

+0

Tôi nhận được quan điểm của bạn. Nhưng đơn vị kiểm tra không phải là thất bại, chỉ xây dựng điều kiện thất bại là đúng sự thật. Điều này có nghĩa là: tất cả các bài kiểm tra đơn vị đều được thông qua, nhưng tỷ lệ phù hợp đã giảm N phần trăm. Tôi có tình trạng lỗi xây dựng để kiểm tra xem mức độ phù hợp có bị giảm hay không, và nếu nó giảm thì bản dựng sẽ được đánh dấu là không thành công. Đơn vị kiểm tra không thất bại mặc dù. Khi kết thúc quá trình xây dựng, nó được đánh dấu là không thành công, vì vậy tình trạng lỗi xây dựng hoạt động tốt. Tôi chỉ cần bỏ qua bước cuối cùng (triển khai) nếu vùng phủ sóng bị rớt (nghĩa là nếu tình trạng lỗi xây dựng được đáp ứng). – Tengiz

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