chu kỳ phát triển/phát hành của chúng tôi làm việc như thế này:Làm cách nào để TeamCity tự động hợp nhất chi nhánh tính năng Git với chủ và không xây dựng trong trường hợp xung đột hợp nhất?
- phát triển tạo ra một chi nhánh tính năng, thực hiện một tính năng
- Nhà phát triển chỉ ra tính năng đã sẵn sàng để chấp nhận thử nghiệm (UAT)
- Tester triển khai chi nhánh tính năng và chấp nhận (hoặc từ chối) tính năng
Các tính năng được chấp nhận sau đó được sáp nhập vào chi nhánh chính bởi người kiểm tra và do đó sẽ được phát hành trong lần tiếp theo chu kỳ dễ dàng (chúng tôi triển khai mã trunk/master hàng tuần).
Chúng tôi đang gặp khó khăn với xung đột hợp nhất, bởi vì thời gian người kiểm tra đã làm nổi bật tính năng và phát hiện ra rằng nó sẽ không hợp nhất một cách rõ ràng, nhà phát triển làm việc trong đó thường chuyển sang một thứ khác. Chúng tôi đang xem xét giải pháp theo đó mỗi nhánh tính năng được tự động hợp nhất, bởi TeamCity, chống lại nhánh chính hiện tại và bất kỳ kết quả nào tạo ra xung đột hợp nhất được coi là không thành công - điều này sẽ cho chúng ta khả năng hiển thị sớm về sự hợp nhất có vấn đề để chúng tôi có thể sửa chúng sớm hơn.
TeamCity dường như không hỗ trợ sẵn cho luồng công việc này (tức là khi một lần push xảy ra với chi nhánh X, thanh toán chính, hợp nhất chi nhánh X vào nó, xây dựng, thử nghiệm đơn vị, tạo gói). Có ai đã tạo ra một quy trình làm việc tương tự bằng cách sử dụng TeamCity và Github - bằng cách sử dụng các mục tiêu msbuild tùy chỉnh, có lẽ?
EDIT: Tôi nên làm rõ rằng chúng tôi đang sử dụng Github nhưng hiện tại chúng tôi không sử dụng yêu cầu kéo - có vẻ như đây là điều tôi nên điều tra. :)
Câu hỏi tuyệt vời Dylan, tôi đang tìm cách tự giải quyết vấn đề tương tự. Khi bạn đề cập đến GitHub trong câu cuối cùng, bạn có nghĩa là Git thay thế không? Vì GitHub đã triển khai tính năng này. Tôi đã tận dụng nó trong các dự án nguồn mở. –