"Xây dựng hàng đêm" nghĩa là gì?


53

Tôi đã sử dụng các dự án nguồn mở trong một thời gian và đã phát triển các ứng dụng nguồn mở và thường xuyên tôi bắt gặp các từ 'Xây dựng hàng đêm' và tôi luôn tò mò về ý nghĩa thực sự của nó. Điều đó có nghĩa đen là các dự án được thực hiện hoàn toàn như các dự án phụ (thường là vào ban đêm sau khi mọi người đã hoàn thành công việc ban ngày của họ) và không có người đóng góp thực sự / nhóm phát triển chuyên dụng hay nó phức tạp hơn thế?


10
Google thất bại bạn? joelonsoftware.com/articles/fog0000000023.html là khá cao trong danh sách. Vui lòng cập nhật câu hỏi của bạn để xác định những điều cụ thể còn thiếu từ bài đăng blog này.
S.Lott

2
@ S.Lott liên kết mà bạn cung cấp khá dài, thật tốt khi có phiên bản ngắn hơn hoặc câu trả lời đơn giản hơn ở đây trong stack-overflow. Đối với những người muốn biết thêm về chủ đề có thể đi đến liên kết mà bạn đã cung cấp.
Andrew Lam Yat Weng

Câu trả lời:


68

Không, điều đó có nghĩa là mỗi đêm, mọi thứ đã được kiểm tra trong kiểm soát nguồn đều được xây dựng. Bản dựng đó là "bản dựng hàng đêm".


13
Thông thường, có một máy chạy tập lệnh sẽ tự động lấy tất cả các thay đổi từ hệ thống kiểm soát phiên bản, biên dịch (xây dựng) tất cả mã, sau đó đăng nó ở đâu đó để tải xuống hoặc (nếu trang web hoặc dịch vụ) xuất bản nó lên hệ thống kiểm tra và bắt đầu nó chạy. Một tên khác thuộc về Hệ thống tích hợp liên tục, mặc dù điều đó có thể ám chỉ rằng việc xây dựng được thực hiện ngay khi bất kỳ cam kết nào với VCS được thực hiện.
CodexArcanum

3
Nó cũng nên tăng phiên bản và đóng dấu mọi thứ với số phiên bản chính xác. Không có gì khó chịu hơn việc xử lý các bản dựng ngẫu nhiên từ các lập trình viên được xây dựng từ mã cũ và số phiên bản sai. Bản dựng hàng đêm cung cấp cho mọi người bản dựng và số phiên bản mà họ có thể tin tưởng.
jqa

36

Nói chung, nó có nghĩa là một bản dựng tự động được thực hiện mỗi ngày một lần, thường là sau khi kết thúc ngày đối với hầu hết các nhà phát triển. Đối với các dự án có nhà phát triển ở nhiều múi giờ, đó thường là thời gian thỏa hiệp. Ý tưởng là mọi người sẽ kiểm tra mã "hôm nay" đã làm như vậy và bản dựng tự động sẽ đảm bảo mọi thứ được biên dịch, và hy vọng chạy thử nghiệm đơn vị và bất kỳ thử nghiệm tự động nào khác, v.v. / thực thi, v.v.


13

Nó có nghĩa là một bản dựng được thực hiện vào cuối mỗi ngày phát triển. Nếu bạn sử dụng máy chủ tích hợp liên tục, thông thường, nó sẽ được cấu hình để xây dựng mã và chạy thử nghiệm đơn vị trên mỗi lần đăng nhập. Vào cuối mỗi ngày, bạn có thể muốn chạy thử nghiệm rộng hơn, thử nghiệm hồi quy và thử nghiệm tích hợp, ví dụ: mất quá nhiều thời gian để chạy trên mỗi lần đăng ký và chúng sẽ được kích hoạt sau khi xây dựng hàng đêm. Nếu bạn có một đường ống phân phối liên tục đầy đủ, bản dựng hàng đêm cũng có thể được sử dụng để triển khai mã được xây dựng vào các môi trường để kiểm tra người dùng.


7

Thuật ngữ này thường được sử dụng cho các dự án lớn trong đó việc xây dựng lại hoàn chỉnh sản phẩm hoàn chỉnh từ nguồn mất quá nhiều thời gian để nhà phát triển cá nhân thực hiện điều này như một phần của chu kỳ phát triển bình thường của họ.

Thay vào đó, việc xây dựng lại hoàn thành được thực hiện tự động vào ban đêm để máy tính xây dựng có 8-10-12 giờ để thực hiện quá trình xây dựng và sẵn sàng cho các nhà phát triển đến vào sáng hôm sau, để họ có thể tiếp tục làm việc trên từng bit nhỏ của mình của phiên bản mới.

Ngày nay, dự án thường bao gồm rất nhiều thử nghiệm đảm bảo hoạt động chính xác của mã, cũng như tạo và xuất bản tài liệu từ nguồn (như javadoc).


0

Các bản dựng hàng đêm là điều tốt, chúng cung cấp phản hồi ngay lập tức cho các nhà phát triển nếu họ phá vỡ bản dựng. Có một bản dựng hàng đêm có nghĩa là phần mềm ổn định và có khả năng xây dựng cho người dùng mới. Phần mềm không được xây dựng thường xuyên rất khó phát hành.

Trích dẫn từ: https : //chess.eecs.ber siêu.edu / software / nightly.htmlm


4
Điều này đọc giống như một bình luận, xem Cách trả lời
gnat

nhắc nhở tôi về những ngày thi của tôi, đó là cách chúng tôi sử dụng để bắt đầu trả lời các câu hỏi.
ssi-

Điều này giải thích việc xây dựng hàng đêm là để làm gì, nhưng nó không giải thích việc xây dựng hàng đêm là gì .
Bryan Oakley
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.