Chúng tôi có Jenkins chạy thử nghiệm đơn vị khi các cam kết được thực hiện cho repo của chúng tôi trong Bitbucket. Điều này được kiểm soát bởi Plugin Bitbucket, tức là thông qua một webhook Bitbucket.
Hiện tại, nếu một cam kết được thực hiện cho Chi nhánh A, một bài kiểm tra đơn vị sẽ bắt đầu. Nếu trong khi công việc đó đang chạy một cam kết thứ hai được thực hiện cho Chi nhánh A, một thử nghiệm đơn vị thứ hai sẽ bắt đầu, thì hiện tại có hai thử nghiệm đơn vị trên cùng một nhánh nhưng với mã hơi khác nhau.
Hành vi ưa thích của chúng tôi là thử nghiệm của cam kết đầu tiên sẽ bị hủy bỏ khi thử nghiệm thứ hai bắt đầu, do đó chỉ có thử nghiệm đơn vị gần đây nhất đang được chạy. Điều này có thể đạt được?
Làm rõ; Chúng tôi có nhiều chi nhánh vì vậy chúng tôi không thể chỉ ngăn chặn các bản dựng đồng thời, hủy bỏ lần cuối ngay khi bắt đầu tiếp theo, v.v. Dù sử dụng phương pháp nào cũng phải kiểm tra cụ thể xem chi nhánh đã có công việc chưa chạy chưa, nếu công việc nói chung đã đang chạy.
Tôi đã thấy một số điều khiển kích hoạt cho Git, nhưng không phải Bitbucket. Tôi cũng tìm thấy một tập lệnh để kiểm tra xem công việc đã chạy chưa và hủy nó nếu có, nhưng như đã đề cập trước đó không phù hợp với trường hợp sử dụng của chúng tôi. Tui bỏ lỡ điều gì vậy?