2010-09-13 29 views
6

Tôi đang cố gắng tìm ra cách để viết một móc trước cam kết cho Git kiểm tra trạng thái của tôi xây dựng Hudson. Nếu bản dựng trước đó không thành công, nó sẽ không cho phép bất kỳ ai cam kết mà không viết một dòng cụ thể trước tiên, ví dụ: "xây dựng cố định".Pre-cam móc cho Git khi Hudson xây dựng đã thất bại

EDIT:

Các người trả lời đầu tiên đã cung cấp một mặt của đồng xu: API Hudson.

Bây giờ tôi cần phía bên kia. Làm cách nào để viết móc trước khi cam kết trong Git?

+0

Chỉ cần nghĩ đến một trường hợp sử dụng thú vị. Giả sử Hudson thất bại. Hai nhà phát triển đang làm việc trên mã, một trong những sửa chữa và một trong những thứ hai về tính năng tiếp theo. Trong trường hợp của bạn, nhà phát triển sửa lỗi cần kiểm tra mã trước tiên. Nhà phát triển thứ hai phải đợi cho đến khi Hudson xây dựng lại thành công. Không chắc chắn nếu đó có thể là một vấn đề cho bạn (rất phụ thuộc vào thời gian xây dựng). Theo ý kiến ​​của tôi, bạn tốt hơn, cho người đứng đầu dự án một màn hình, luôn hiển thị trạng thái xây dựng mới nhất. Anh ta sẽ trở nên năng động nếu việc xây dựng bị phá vỡ trong một khoảng thời gian dài. –

+0

Thời gian xây dựng tại thời điểm này rất thấp (theo thứ tự vài phút) để không phải là một vấn đề ... được nêu ra. –

+0

Chỉ cần một bình luận (không chắc chắn nếu nó có thể được áp dụng cho tình huống của bạn): xem thêm http://stackoverflow.com/questions/3209208/what-is-the-cleverest-use-of-source-repository-that-you -ave-ever-seen/3209767 # 3209767 – VonC

Trả lời

2

Như đã đề cập trong số blog post này, Hudson có API có thể khám phá, thông qua Remote Access API.

http://myhudson.example.com/job/MyJob/api 

Bằng cách sử dụng một sự kết hợp của:

  • wget (có sẵn trên Unix hay Windows)
  • phân tích

bạn có thể trích xuất các trạng thái của phiên bản mới nhất.

+1

Rất hay là sự hỗ trợ của Hudson đối với XPath. Tôi đã sử dụng nó để truy vấn Tên tạo tác để tải xuống các tạo phẩm cụ thể trong bước thứ hai. Trong trường hợp của bạn, một cuộc gọi wget đơn lẻ sẽ cung cấp cho bạn thông tin phù hợp. –

+0

Cảm ơn vì điều này. Tôi đã chỉnh sửa câu hỏi của mình để phản ánh rằng tôi chỉ đang tìm cách viết hook trước commit trong 'Git' bây giờ. Vui lòng chỉnh sửa câu trả lời của bạn. –

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